Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/03/2011, 19h30   #1
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
Par défaut Une valeur de la chaîne date, heure ou horodatage est incorrecte.

Bonjour,

Sur STRSQL de AS400 cette requete marche sur certains date et sur d'autre date j'ai un message d'erreur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
SELECT                                    
Zcode,                                    
Clt,                                      
Rs,                                       
Cjj,                                      
Cmm,                                      
Caa,                                      
Ndev,                                     
Prov,                                     
nserie,                                   
date (                                    
digits(dec(cjj, 2, 0)) concat '.' concat  
digits(dec(cmm, 2, 0)) concat '.' concat  
digits(dec(caa, 4, 0)) )  AS dateexport   
FROM                                      
fimport99/fdossnle
 
      WHERE                                   
date (                                        
digits(dec(cjj, 2, 0)) concat '.' concat      
digits(dec(cmm, 2, 0)) concat '.' concat      
digits(dec(caa, 4, 0)) )  > '17/05/2007'
voici le message d'erreur :

Une valeur de la chaîne date, heure ou horodatage est incorrecte.

Merci d'avance
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 19h51   #2
Membre Expert
 
Patrick
Inscription : mai 2008
Messages : 821
Détails du profil
Informations personnelles :
Nom : Patrick
Âge : 42
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : mai 2008
Messages : 821
Points : 1 041
Points : 1 041
Déjà il fautr s'assurer que dans tes tables les 3 zones sont bien des parties de dates valides.

Code :
WHERE .... > '17/05/2007'
n'est pas correct, ce n'est pas un format reconnu.
Utilises 17.05.2007 (format EUR) ou encore 2007-05-17 (format ISO).
Le mieux est de comparer des choses qui se ressemblent ce qui donne :

Code :
WHERE.... > Date('17.05.2007')
Aussi, pour te simplifier la tâche tu devrais te créer une fonction pour éviter les concat (à faire dans ISeries Navigator ou à éxécuter par un RUNSQLSTM)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE FUNCTION qgpl/date (j dec(2, 0), m dec(2, 0), a dec(4, 0))
       returns date
  LANGUAGE sql
  deterministic
  no external action
  Returns NULL ON NULL Input
 
Begin
   Declare DateISO dec(8, 0);
   Declare continue handler FOR sqlexception RETURN Date('9999-12-31');
   SET DateISO = DateIso + a * 10000 + m * 100 + j;
   RETURN Date(INSERT(INSERT(dec(digits(DateIso), 8, 0), 5, 0, '-'), 8, 0, '-'));
End;
Ainsi ta requête deviendra :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
SELECT                                    
Zcode,                                    
Clt,                                      
Rs,                                       
Cjj,                                      
Cmm,                                      
Caa,                                      
Ndev,                                     
Prov,                                     
nserie,                                   
Cdate(cjj, cmm, caa) dateexport   
FROM                                      
fimport99/fdossnle
       WHERE                                   
cdate (cjj, cmm, caa)  > date('17.05.2007')
K2R400 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 20h15   #3
Invité régulier
 
Développeur informatique
Inscription : novembre 2010
Messages : 53
Détails du profil
Informations personnelles :
Localisation : Maroc

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : novembre 2010
Messages : 53
Points : 5
Points : 5
Merci
mostafajob est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h57.


 
 
 
 
Partenaires

Hébergement Web