Convertir une date de format alphabétique en une date de format numérique
Bonjour,
exemple :
Code:
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:
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?
++