2016-10-07 1 views
0

TSQL konvertieren: Wie Do 17. Oktober 00:00:00 GMT 2013 Datum oder Datumzeit konvertierenTSQL: Wie Do 17 00:00:00 GMT 2013 Oct Datum oder Datumzeit

+0

Wie ist das Format, wenn die Zeitzone nicht UTC ist? GMT + 3? GMT +3? GMT +03? GMT + 3.0? +3 GMT? – Andrew

+0

Es wäre besser, diese Situation in erster Linie zu vermeiden. Woher kommt diese Zeichenfolge *, und warum kann sie nicht konvertiert werden (die meisten Sprachen/Frameworks haben eine umfangreichere Datetime-Konvertierungsfunktionalität als T-SQL)? –

Antwort

0

Verwenden Sie das folgende Skript.

DECLARE @input NVARCHAR(28) 
SET @input = 'Thu Oct 17 00:00:00 GMT 2013' 

SELECT CAST(SUBSTRING(REPLACE(@input,' GMT',''),5,LEN(@input))as Datetime) [DATETIME], 
     CAST(CAST(SUBSTRING(REPLACE(@input,' GMT',''),5,LEN(@input))as Datetime)as DATE) [DATE] 

Sie können auch die Funktion ‚FORMAT‘ verwenden, um die Eingabe als Datum zu konvertieren.

SELECT FORMAT(CAST(SUBSTRING(REPLACE(@input,' GMT',''),5,LEN(@input)) as datetime),'yyyy-MM-dd') [Date] 
+0

Das würde funktionieren. Vielen Dank. – Mousam

0

Unter der Annahme, dass es keine Um zwischen Zeitzonen zu konvertieren, können Sie den folgenden TSQL verwenden:

DECLARE @DateText NVARCHAR(28) 
SET @DateText = 'Thu Oct 17 00:00:00 GMT 2013' 

SELECT CONVERT(DATETIME, SUBSTRING(@DateText,9,3) + SUBSTRING(@DateText,5,4) + SUBSTRING(@DateText,25,4) + SUBSTRING(@DateText,11,9), 113) "DATETIME", 
     CONVERT(DATE, SUBSTRING(@DateText,9,3) + SUBSTRING(@DateText,5,4) + SUBSTRING(@DateText,25,4), 106) "DATE" 
Verwandte Themen