J'aimerai faire un select pour récupérer un champ de date, et le convertir en AnnéeMoisJourHeureMinuteSeconde de la forme suivante : YYYYMMDDhhmmss. Comment faire ça ?
Version imprimable
J'aimerai faire un select pour récupérer un champ de date, et le convertir en AnnéeMoisJourHeureMinuteSeconde de la forme suivante : YYYYMMDDhhmmss. Comment faire ça ?
Code:select substring(convert(varchar(8),getdate(),112)+replace(convert(varchar(8),getdate(),114),':',''),0,14)
Voici un possibilité - mais le str_replace() avec le remplacement d'un charactère par rien requiert 12.5.2
MichaelCode:select convert(varchar(8), getdate(), 112) + str_replace(convert(varchar, getdate(), 108), ':', null)
J'ai l'impression que la fonction replace n'existe pas sous ASE.
Voici un code qui marche aussi avec ASE < 12.5.2Code:
1
2
3
4
5 select convert(varchar(8),getdate(),112) + substring("0",1,2-char_length(ltrim(str(datepart(hour ,getdate()),2)))) + ltrim(str(datepart(hour ,getdate()),2)) + substring("0",1,2-char_length(ltrim(str(datepart(minute ,getdate()),2)))) + ltrim(str(datepart(minute ,getdate()),2)) + substring("0",1,2-char_length(ltrim(str(datepart(second ,getdate()),2)))) + ltrim(str(datepart(second ,getdate()),2))
replace/str_replace existe dès la v.15 de ASE
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.ase_15.0.blocks/html/blocks/blocks213.htm
Version de ASE :Citation:
Envoyé par e-miel
Adaptive Server Enterprise/12.0.0.6/P/EBF 10627 ESD 1/Sun_svr4/OS 5.6/1918/32bit/FBO/Fri Oct 18 07:09:21 2002
Date du jour au format YYYYMMDDhhmmss :
Code:
1
2
3
4
5 select convert(varchar(8),getdate(),112) -- YYYYMMDD +substring(convert(varchar(8),getdate(),108),1,2) --HH +substring(convert(varchar(8),getdate(),108),4,2) -- mm +substring(convert(varchar(8),getdate(),108),7,2) -- ss