Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Konvertiertes varchar in datetime sql einfügen

Wenn Sie ein zeichenfolgenbasiertes Datumsformat verwenden müssen, sollten Sie eines auswählen, das sicher ist und funktioniert in jeder SQL Server-Instanz, unabhängig von Datumsformat, Sprache und regionalen Einstellungen.

Dieses Format ist als ISO-8601 bekannt Format und entweder

YYYYMMDD      (note: **NO** dashes!)

oder

YYYY-MM-DDTHH:MM:SSS

für ein DATETIME Spalte.

Also statt

Convert(datetime, '28/11/2012', 103)

sollten Sie verwenden

CAST('20121128' AS DATETIME)

und dann sollte es dir gut gehen.

Wenn Sie SQL Server 2008 verwenden - Sie könnten sich auch mit der Verwendung von DATE befassen (anstelle von DATETIME ) für Fälle, in denen Sie nur das Datum benötigen (kein Zeitanteil). Das wäre noch einfacher als die Verwendung von DATETIME und dass der Zeitabschnitt immer 00:00:00 ist