Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#1

[MSSQL2000] Smalldatetime-Konv. ohne Datum schlägt fehl

  Alt 9. Nov 2006, 12:28
Datenbank: MS-SQL • Version: 2000 • Zugriff über: ADO
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat