Wie konvertieren von varchar in datetime und überspringen Sie nicht gültig ist datetime in TSQL
Ich habe eine Datenbank in SQL Server. Ich habe nicht die Berechtigung zum ändern einer Tabelle aber ich kann Ansichten erstellen.
Habe ich drei varchar
Spalten, die für die Speicherung von Daten im format YYYYMMDD
. Ich möchte eine Ansicht erstellen, wo die Daten umgewandelt varchar
zu datetime
.
Nun kann es der Fall sein, dass anstatt ein Datum in diese Spalten kann ich den leeren Raum, NULL
oder den Charakter -
.
Nehmen wir das closedDate
Spalte. Wenn ich CONVERT(datetime, closedDate, 112)
- Gültige Datumsangaben werden korrekt Umgerechnet,
- Wenn es leeren Raum wird das Datum umgewandelt
1900-01-01
, - NULL gehalten wird,
- Den
-
verursacht einen Fehler bei der Konvertierung:
Die Konvertierung eines varchar-Datentyps in einen datetime-Datentyp führte
in einer out-of-range-Wert.
Wie kann ich sagen, die Funktion zur Umrechnung von Daten nur, wenn es gültiges Datum der form und lassen Sie NULL-oder besser ein leeres Datum(oder Raum), in allen anderen Fällen?
InformationsquelleAutor CiccioMiami | 2012-10-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen, diese
Sie können nicht einen leeren Raum in ein datetime Feld.
Danke, funktioniert wie ein Charme!
Oh, ich weiß nicht, dass es ISDATE () - Funktion. Danke für die Antwort.
InformationsquelleAutor rs.
ja wird es wieder Standard-Datum 1900-01-01 00:00:00.000
InformationsquelleAutor Shridhar