Es gibt eine Spalte TriggerDate
des Typs varchar(50)
. Es speichert Werte im Format MM/dd/yyyy
(zB: 21.05.2016).Datum Konvertierungsproblem in SQL Server 2014
sind 10 Einträge in dieser Tabelle für das Datum 21. Mai 2016
Wenn ich diese Abfrage ausführen
select *
from Analytics
where convert(date, TriggerDate) = '2016-05-21'
ich das Ergebnis in dem Register Ergebnisse erhalten, aber die Nachrichten Registerkarte zeigt diese Fehler
Msg 241, Ebene 16, Status 1, Zeile 1
Fehler bei der Konvertierung, wenn Datum und/oder Uhrzeit aus Zeichenfolge zu konvertieren.
Allerdings, wenn ich
laufenselect top 10 *
from Analytics
where convert(date, TriggerDate) = '2016-05-21'
es keine Fehler
Ausführen select CONVERT(date,'05/21/2016')
kehrt 2016-05-21
ohne Fehler.
Was mich verblüfft ist: Wie ist der Top 10 macht den Unterschied, und es funktioniert auf meinem Testserver auch SQL Server 2014
läuft Wie soll ich dieses Problem lösen?
Verwenden von SQL Server 2014 in Windows Server 2012 R2 und das Systemdatum im Format 5/21/2016
Es gibt Zeilen mit ungültigem Datumsformat. Deshalb sollten Sie nicht varchar verwenden, um Datumswert – Squirrel
zu speichern Ich habe mein Q mit einer neuen Beobachtung aktualisiert. Es gibt keine Möglichkeit, den Datentyp jetzt zu ändern. Es ist ein riesiger Tisch. Irgendeine Idee, wie ich diese Täterreihen herausfinden kann. – Qwerty
Verwenden Sie 'ISDATE()' https://msdn.microsoft.com/en-us/library/ms187347.aspx – Squirrel