Ich habe in der "in" -Anweisung die Daten enthalten, die in logdate enthalten sind.Wie konvertiere ich diese Datumszeichenfolge in datetime?
aus irgendeinem Grund kann ich sie nicht konvertieren. Ich bin eher daran gewöhnt, Datenbanken zu orakrieren, die diese Dinge mehr auf vergebungsvolle Weise behandeln. Ich kämpfe darum, herauszufinden, was falsch läuft.
select CONVERT(DATETIME,opencall.logdate,102)
from opencall
where logdate in
( '17/08/2016 10:33:08'
,'17/08/2016 10:33:13'
,'17/08/2016 10:33:17'
,'17/08/2016 10:34:03'
,'17/08/2016 10:34:14'
,'17/08/2016 10:34:46')
;
I erhalten, um den Fehler [S0003] [242] Die Umwandlung eines VARCHAR-Datentypen auf einen Datumsdatentyp in einem Out-of-Range-Wert geführt.
und ich versuchte
select cast(opencall.logdate as datetime)
from opencall
(
'17/08/2016 10:33:08'
,'17/08/2016 10:33:13'
,'17/08/2016 10:33:17'
,'17/08/2016 10:34:03'
,'17/08/2016 10:34:14'
,'17/08/2016 10:34:46'
)
I erhalten Fehler [S0003] [242] Die Umwandlung eines VARCHAR-Datentyp auf einen Typ Datumsdaten resultierten in einer Out-of-Range-Wert.
Was mache ich diesmal falsch?
:-)
Ihr Server akzeptiert 'MM/DD/YYYY' Format so' 17/08/2016' betrachten '17' als Monat,' 08' wie Datum, so dass er die erroe – Arulkumar
der außerhalb der Reichweite führt geschieht, weil des DD/MM-Formats, so dass SQL es als den Monat 17 liest, der nicht existiert. – scsimon
Darüber hinaus behandelt Sql Server Datetime-Werte ohne die Vollzeitkomponente, als ob der verbleibende Teil der Zeitkomponente alle Null sind. Diese Abfrage funktioniert nur, wenn die 'opencall' Tabellen Werte haben, die ** genau ** übereinstimmen' 17/08/2016 10: 33: 08.000', '17.08.2016 10: 33: 13.000',' 17/08/2016 10: 33: 17.000', usw. Alle in der Tabelle _WILL_ gespeicherten gebrochenen Sekundenwerte unterbrechen diese Abfrage. –