Moin Zusammen,
in einer Spalte vom Typ smalldatetime möchte ich nur die Zeit speichern, da mich an der Stelle das Datum nicht weiter interessiert.
Die Zeit stammt aus TDateTimePicker.Time.
Um jetzt einen definierten Zustand für die Tabelle zu schaffen wollte ich, mit Hilfe von Frac nur den Zeitanteil wegschreiben, so dass also, z.B., 0,25 für 6:00 Morgens gespeichert wird.
Durch die 0 im Datumsanteil müsste dort also 01.01.1900 06:00:00 gespeichert werden.
Leider ist der
SQL-Server da anderer Meinung, und wirft einen Fehler:
Zitat von
Fehlermeldung:
[Microsoft][
ODBC SQL Server Driver][
SQL Server]The conversion from datetime data type to smalldatetime data type resulted in a smalldatetime overflow error
Das ein datetime mit dem Wert 0,25 dem 01.01.1753 als Datum nicht in einen entsprechenden smalldatetime konvertiert werden kann, und somit zu diesem Fehler führt kann ich ja noch nachvollziehen, aber warum wird überhaupt der Umweg über datetime genommen, wenn das Ziel vom Typ smalldatetime ist?
Zugewiesen wird der Wert über TADODataSet.FieldValues[...], gespeichert dann per TADODataSet.Post.
Als Workaround addiere ich jetzt einfach das zur Zeit gehörige Datum mit auf, aber woher das Problem stammt wüsste ich doch ganz gerne.