Eigentlich gibt es kein rationales Verhalten, wenn ein Datum und eine Zeit geben, es sei denn, kennen Sie die Zeitzonen für beiden Werte. Andere Datenbanken können eine willkürliche Standardzeitzone annehmen, SQL Server jedoch nicht.
Hätten die T-SQL-Designer eine solche Unterstützung hinzugefügt, würde der Großteil des alten Codes (sowohl auf der Server- als auch auf der Clientseite) mit der Erkennung von Fehlern behaftet sein. Denken Sie daran, dass die meisten Benutzer immer noch den alten Datetime-Typ verwenden und eine Standardzeitzone (lokal oder GMT) annehmen.
Man könnte argumentieren, dass das Hinzufügen einer Datetime und eine Zeit möglich sein sollte, da die erste Zeitzone Informationen enthält und die zweite nicht, aber ich denke, dass die T-SQL-Designer um Verwirrung vermeiden wollten, wenn man die Umwandlung Datentyp zum anderen. Eine Menge clientseitigen Code würde immer noch brechen, wenn die clientseitigen Typen ihren zeitzonenbewussten Code nicht ändern.
Also, warum keine explizite Funktion, die die Addition tut? Wahrscheinlich würde auch nicht funktionieren, da Datetime-Typen ohne Zeitzone implizit in datetimeoffset2 konvertiert werden. Sie könnten problemlos einen Wert ohne Zeitzone an eine solche Funktion übergeben, und es würde in die falsche Zeitzone konvertiert werden, BEVOR es an die Funktion übergeben wurde
Kurz gesagt, Rückwärtskompatibilität bietet keine sichere Möglichkeit, Datum und Uhrzeit zu verarbeiten.
ich diesen nützlichen Link gefunden http://beyondrelational.com/modules/2/blogs/77/Posts/18855/0239-sql-server-2012-msg-402-the-data-types-datetime -und-zeit-sind-inkompatibel-in-der-addsubtract-op.aspx –
mögliches Duplikat von [TSQL zum Hinzufügen von Datum/Uhrzeit-Feld mit einem Zeitfeld] (http://stackoverflow.com/questions/15228132/tsql-to- add-datetime-field-with-a-time-Feld) –
Danke Ajay, für den informativen Link! Ich bin nur neugierig, warum es in der 2012 Developer Edition noch laufen muss. Halb gebacken ausrollen? :-) – tejaslakade