Verwendung von SQL Server 2008, diese Abfrage funktioniert super Kombination:(verketten) Datum und Uhrzeit in ein Datetime
select CAST(CollectionDate as DATE), CAST(CollectionTime as TIME)
from field
gibt mir zwei Spalten wie folgt aus:
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
2013-01-25 18:53:00.0000000
.
.
.
ich zu kombinieren bin versucht, sie zu einem einzigen Datetime mit dem Pluszeichen, wie folgt aus:
select CAST(CollectionDate as DATE) + CAST(CollectionTime as TIME)
from field
ich habe auf etwa zehn Websites sah, einschließlich Antworten o n dieser Stelle (wie this one), und sie scheinen alle einig, dass das Pluszeichen sollte funktionieren, aber ich bekomme die Fehlermeldung:
Msg 8117, Level 16, State 1, Line 1
Operand data type date is invalid for add operator.
Alle Felder sind ungleich Null und ungleich Null. Ich habe auch versucht, die CONVERT-Funktion und versuchte, diese Ergebnisse als varchars, das gleiche Problem zu werfen. Das kann nicht so schwer sein wie ich es mache.
Kann mir jemand sagen, warum das nicht funktioniert? Danke für jede Hilfe.
Was die ursprünglichen Datentypen für jede Spalte sind ?, und wenn sie Strings werden, wie sich die dort gespeicherten Daten? (YYYY-MM-TT, JJJJMMTT, usw.) – Lamak
Frage eigentlich zu Ihnen und @Aaron Bertrand, wenn ich meine Daten in der Abfrage selbst CASTing (oder CONVERTING), spielt es eine Rolle, ob die zugrunde liegenden Daten gespeichert sind als Zeichenfolgen oder Daten? Ich speichere als Datetime-Felder, bin aber nur neugierig. – Stanton
@Stanton sicher, es spielt eine Rolle. Warum solltest du zwei Ebenen von Cast/Convert durchlaufen, wenn du das nicht brauchst? –