par
Ryle » 25 févr. 2011, 21:39
On doit aussi pouvoir le faire simplement en sql en découpant la chaine et en stockant le résultat dans un champ date :
UPDATE ma_table
SET mon_champ_date = concat(
SUBSTRING(mon_champ_varchar,-4)
, '-'
, CASE SUBSTRING(mon_champ_varchar,2,3)
WHEN 'jan' THEN '01'
WHEN 'fev' THEN '02'
WHEN 'mar' THEN '03'
...
END CASE
, '-'
, SUBSTRING(mon_champ_varchar,0,2)
);
Une fois que c'est fait, tu peux supprimer le champ varchar et n'utiliser que le champ date

On doit aussi pouvoir le faire simplement en sql en découpant la chaine et en stockant le résultat dans un champ date :
[sql]UPDATE ma_table
SET mon_champ_date = concat(
SUBSTRING(mon_champ_varchar,-4)
, '-'
, CASE SUBSTRING(mon_champ_varchar,2,3)
WHEN 'jan' THEN '01'
WHEN 'fev' THEN '02'
WHEN 'mar' THEN '03'
...
END CASE
, '-'
, SUBSTRING(mon_champ_varchar,0,2)
);[/sql]
Une fois que c'est fait, tu peux supprimer le champ varchar et n'utiliser que le champ date :)