Bonjour,

Je viens encore une fois demander votre aide...
J'essaye de faire tourner la requête:
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
SELECT cast(cdagen as int) as ag, nocmpt as compte,  
 
cast(substring(substring(donnees, 187, 8), 5, 2)+'-'+substring(substring(donnees, 187, 8), 7, 2)+'-'+substring(substring(donnees, 187, 8), 1, 4) as datetime) as preinc 
 
FROM PACK10PDTA.DB2IS20FR.pack10pdta.FCISTKP000
 
where typcle='I' and substring(DONNEES, 22, 1)<>'P'  
 and cast(substring(substring(donnees, 187, 8), 5, 2)+'-'+substring(substring(donnees, 187, 8), 7, 2)+'-'+substring(substring(donnees, 187, 8), 1, 4) as datetime)>=dateadd(month, -2, getdate())
 
order by substring(donnees, 187, 8)  desc
ce qui donne l'erreur: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Mais si j'essaye (j'enleve la dernière condition de la clause WHERE)
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
SELECT cast(cdagen as int) as ag, nocmpt as compte,  
 
cast(substring(substring(donnees, 187, 8), 5, 2)+'-'+substring(substring(donnees, 187, 8), 7, 2)+'-'+substring(substring(donnees, 187, 8), 1, 4) as datetime) as preinc 
 
FROM PACK10PDTA.DB2IS20FR.pack10pdta.FCISTKP000
 
where typcle='I' and substring(DONNEES, 22, 1)<>'P'  
-- and cast(substring(substring(donnees, 187, 8), 5, 2)+'-'+substring(substring(donnees, 187, 8), 7, 2)+'-'+substring(substring(donnees, 187, 8), 1, 4) as datetime)>=dateadd(month, -2, getdate())
 
order by substring(donnees, 187, 8)  desc
tout marche bien

Est-ce que quelqu'un saurait dire quel est le problème?

Merci d'avance