Bonjour,

exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
select convert(varchar,convert(varchar,'Jan  9 1956 12:00AM',100),103) => ça renvoie 'Jan  9 1956 12:00AM'
select convert(varchar,cast('Jan  9 1956 12:00AM' as datetime) ,103) => ça renvoie Erreur de conversion 
 
set DATEFORMAT DMY
select datepart(year,'23/09/2010') 'YEAR', datepart(month,'23/09/2010') 'Month', datepart(day,'23/09/2010') 'Day'
set DATEFORMAT MDY
select datepart(year,'Mar 11 1951 12:00AM') 'YEAR', datepart(month,'Jan  9 1956 12:00AM') 'Month', datepart(day,'23/09/2010') 'Day' =>renvoie Erreur de conversion
la valeur est considérée comme une chaine de caractère, comment peut on faire comprendre au système qu'il s'agit d'une date?

pour l'instant je fais par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
select  (
substring('Mar 11 1951 12:00AM',5,2)+'/'+
case  substring('Mar 11 1951 12:00AM',1,3) 
when 'Jan' then '01' 
when 'Fev' then '02' 
when 'Mar' then '03' 
when 'Apr' then '04' 
when 'Mai' then '05' 
when 'Jun' then '06' 
when 'Jul' then '07' 
when 'Aug' then '08' 
when 'Sep' then '09' 
when 'Oct' then '10' 
when 'Nov' then '11' 
when 'Dec' then '12' 
End +'/'+
substring('Mar 11 1951 12:00AM',8,4)) 
as datetime
je n'aime pas beaucoup ça, y a t-il un moyen de conversion plus pratique?

++