it-swarm.com.de

Wie konvertiere ich den datetime-Wert in yyyymmddhhmmss im SQL-Server?

Wie konvertiert man den datetime-Wert in yyyymmddhhmmss?

zum Beispiel Von 2014-04-17 13:55:12 

Zum 20140417135512 

18
vignesh

Seit SQL Server Version 2012 können Sie Folgendes verwenden:

SELECT format(getdate(),'yyyyMMddHHmmssffff')
29
JPT

Das scheint zu funktionieren:

declare @d datetime
set @d = '2014-04-17 13:55:12'

select replace(convert(varchar(8), @d, 112)+convert(varchar(8), @d, 114), ':','') 

Ergebnis:

20140417135512
16
jpw
SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
8
user3656333

FORMAT() ist langsamer als CONVERT(). Diese Antwort ist etwas besser als die Antwort von @ jpx, da nur ein Teil des Datums ersetzt wird.

112 = yyyymmdd - no format change needed

108 = hh:mm:ss - remove :

SELECT CONVERT(VARCHAR, GETDATE(), 112) + 
       REPLACE(CONVERT(VARCHAR, GETDATE(), 108), ':', '')
3
Tim

Diese Abfrage konvertiert die DateTimeOffset in das Format yyyyMMddhhss mit Offset. Ich habe die Bindestriche colon(:), period(.) aus den Daten ersetzt und den Bindestrich für die Trennung von Offset von DateTime beibehalten.

SELECT REPLACE(SUBSTRING(CONVERT(VARCHAR(33),SYSDATETIMEOFFSET(),126), 1, 8), '-', '') +
SUBSTRING(REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126),'T',''),'.',''),':',''),9,DATALENGTH(CONVERT(VARCHAR(33), SYSDATETIMEOFFSET(), 126)))
0
user3201387

20090320093349 SELECT CONVERT (VARCHAR, @ date, 112) + LINKS (REPLACE (CONVERT (VARCHAR, @ date, 114), ':', ''), 6)

Eine andere Option, die ich gegoogelt habe, enthält jedoch mehrere ...

SELECT REPLACE(REPLACE(REPLACE(CONVERT(VARCHAR(19), CONVERT(DATETIME, getdate(), 112), 126), '-', ''), 'T', ''), ':', '') 
0
vignesh

auch das funktioniert auch

SELECT replace(replace(replace(convert(varchar, getdate(), 120),':',''),'-',''),' ','')
0
Burak Kalkuz