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)

  1. Gültige Datumsangaben werden korrekt Umgerechnet,
  2. Wenn es leeren Raum wird das Datum umgewandelt 1900-01-01,
  3. NULL gehalten wird,
  4. 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

Schreibe einen Kommentar