it-swarm.com.de

Konvertieren Sie in SQL Server von varchar in date

Dies scheint eine einfache Lösung zu sein, aber ich kann nicht herausfinden, warum dies für mich nicht funktioniert. Ich habe eine Spalte mit Daten wie diese:

DateField
----------
12/16/2016
11/06/2016

Alles, was ich tun möchte, ist, von varchar in eine date-Spalte zu konvertieren, aber ich erhalte diesen Fehler:

Die Konvertierung ist beim Konvertieren von Datum und/oder Uhrzeit aus der Zeichenfolge fehlgeschlagen.

Hier ist meine einfache Frage:

select convert (date, DateField) as convertedField 
from myTable
3
moe

Nichts ist falsch an den beiden Beispielen, die Sie gegeben haben. Es gibt einige fehlerhafte Daten in Ihrer Tabelle, die nicht in Datum konvertiert werden können.

Verwenden Sie die TRY_CONVERT-Funktion für schlechte Daten, es wird NULL zurückgegeben.

select TRY_Convert(date,DateField)
From myTable

Sie sollten Datumsangaben immer im DATE/DATETIME-Datentyp speichern. 

Wenn Sie die Datensätze anzeigen möchten, die nicht in Datum konvertiert werden können, dann 

select DateField
From myTable
Where TRY_Convert(date,DateField) IS NULL
10

Wenn Sie mit einem bestimmten Datumsformat wie mm/dd/yyyy arbeiten, können Sie es in der Funktion Convert() wie folgt angeben

CONVERT(DATETIME,DATAFIELD,101)

Wenn es immer noch nicht funktioniert, verwenden Sie TRY_CONVERT(), um zu ermitteln, welche Zeilen diese Ausnahme auslösen:

SELECT * 
FROM TBL 
WHERE TRY_CONVERT(DATETIME, DATAFIELD, 101) IS NULL

Dies gibt Zeilen zurück, die nicht konvertiert werden können

TRY_CONVERT() gibt NULL zurück, wenn die Konvertierung fehlgeschlagen ist

Weitere Informationen zu DateTime Formaten finden Sie hier: SQL Server CONVERT () - Funktions-Tutorial

Lesen Sie TRY_CONVERT MSDN-Artikel

3
Hadi

Sie müssen während der Formatierung das Datumsformat angeben. Das Datum in Ihrer Tabelle ist derzeit im US-Format, daher sollten Sie das dritte Argument 101 in Ihrer Konvertierungsfunktion übergeben.

SELECT CONVERT(date,[DateField],101) FROM myTable;

Fiddle hier http://rextester.com/NYKR49788 arbeiten

Weitere Informationen zum Datums-/Uhrzeitstil finden Sie hier: https://msdn.Microsoft.com/de-de/library/ms187928.aspx

0
Aatish Sai