Benutzer mit den meisten Antworten
nvarchar nach Datetime casten

Frage
-
Hallo,
habe in einer import-Tabelle ein Feld insertDatum (datetime) und Erfassungsdatum (nvarchar50)
Erfassungsdatum hat das Format: YYYY-MM-DD hh:nn:ss
Das möchte ich nun nach Datetime wandeln und in das Feld insertDatum schreiben.
Wie mach ich das?
Andreas
http://www.AccessBlog.de
Antworten
-
hmm, ist eigentlich unwahrscheinlich, aber setzte mal ein SET DATEFORMAT ein:
DECLARE @Sample TABLE ( textDate NVARCHAR(50) ) ; INSERT INTO @Sample VALUES ( '2011-08-30 12:13:14' ) ; SET DATEFORMAT YMD ; SELECT * , CAST(textDate AS DATETIME) FROM @Sample ;
Ansonsten ist halt tatsächlich kein gültiger Datumswert in deiner NVARCHAR()-Spalte enthalten.
- Als Antwort markiert Andreas Vogt Montag, 29. August 2011 12:59
Alle Antworten
-
hmm, ist eigentlich unwahrscheinlich, aber setzte mal ein SET DATEFORMAT ein:
DECLARE @Sample TABLE ( textDate NVARCHAR(50) ) ; INSERT INTO @Sample VALUES ( '2011-08-30 12:13:14' ) ; SET DATEFORMAT YMD ; SELECT * , CAST(textDate AS DATETIME) FROM @Sample ;
Ansonsten ist halt tatsächlich kein gültiger Datumswert in deiner NVARCHAR()-Spalte enthalten.
- Als Antwort markiert Andreas Vogt Montag, 29. August 2011 12:59
-
Hallo Andreas,
da musst Du nicht umstellen und solltest es auch nicht, um keine Abhängigkeiten
von der eingestellten Benutzersprache zu bekommen, denn daran hängt SET DATEFORMAT.
Und die ist wiederum in Deutschland (German) üblicherweise DMY.Verwende CONVERT mit dem Stil 120, dann geht es auch ohne:
SELECT CONVERT(datetime, '2011-08-30 12:13:14' , 120)
Ansonsten lies mal: Der ultimative Guide für die Datetime Datentypen
Gruß Elmar