2016-12-14 5 views
0

select convert (datetime, '12/16/2001 23.00.00‘, ???)einen String in einen Datetime in MS SQL Server konvertieren

von auf https://msdn.microsoft.com/en-us/library/ms187928.aspx suchen, ich Ich kann keinen gültigen Stil finden, den ich mit der Konvertierungsfunktion für diesen Datumstyp verwenden kann. Ich bekomme immer die Fehlermeldung ‚Fehler bei der Konvertierung, wenn Datum Umwandlung und/oder Zeit aus Zeichenkette‘

Irgendwelche Ideen?

+3

Welche Version von SQL Server benutzt du? Sie müssen beim Konvertieren in Datetime kein Format angeben, das Format wird nur benötigt, wenn Sie datetime in string konvertieren. Verwenden Sie einfach 'convert wählen (datetime, '12/16/2001 11:00:00 PM ')' das sollte gut funktionieren. –

+3

ersetzen ??? mit 101 –

+1

@ M.Ali Das ist falsch! Probieren Sie dies aus, wählen Sie CONVERT (Datum, 01.02.2001, 23:00 Uhr, 101), CONVERT (Datum, 01.02.2001, 23:00 Uhr, 103) '... Die Standardeinstellung könnte gut funktionieren - oder nicht ... – Shnugo

Antwort

1

CONVERT muss den entsprechenden Parameter wissen, wie ein Datum Zeichenfolge zu analysieren.

Blick at this link Details zu finden.

Ihr Fall muss 101:

select CONVERT(datetime, '12/16/2001 11:00:00 PM', 101) 

Wenn dies unter Ihrer Kontrolle ist, sollten Sie jede Kultur vermeiden Zusammenhang Datumsliteral. Am besten für Datetime - wenn Sie Art in ein Datum mit der Zeit haben - ist ODBC

SELECT {ts'2001-12-16 23:00:00'}; 

oder ISO 8601

SELECT CONVERT(DATETIME,'2001-12-16T23:00:00',126); 

Here's a related answer

And here's another one

Verwandte Themen