Hallo,
habe gleiches Problem mit der Datumsformatierung, bei mir allerdings bei einem Programm, das mit SQL 2005 und SQL 2008 laufen muss. In 2008 sind ja neue Feldtypen dazugekommen fuer Datum und Zeit.
Ich benutze Delphi 2009 und SQL 2008 auf Windows Server 2003 SP2. Bei mir funktioniert das direkte einlesen mit:
Delphi-Quelltext
1: 2: 3: 4: 5:
| var X:TDateTime; AdoQuery1.SQl.Add('Select GetDate() as ServerZeit'); AdoQuery1.Open; X:=ADOQuery1['ServerZeit']; AdoQuery1.Close; |
Es mag sein, dass sich SQL 2005 anders verhaelt. Ich hatte seinerzeit im Change Ereignis des Eingabefeldes mit Datumsfunktionen gespielt, bis sich das Programm mit SQL 2005 und SQL 2008 gleich verhielt.
Den Anwender stoerte das Ausgabeformat YYYY-MM-DD HH:MM:SS.999 im DBEdit.
Probiere doch einfach entweder den cast im SQL String zu aendern, oder das Feld erst in einen String zu packen.
Delphi-Quelltext
1:
| AdoQuery1.SQl.Add('Select cast(GetDate() as DateTime) as ServerZeit'); |
(habe kein SQL 2005 mehr um zu testen)
Delphi-Quelltext
1:
| X:=StrToDateTime(ADOQuery1['ServerZeit']); |
Vielleicht ist aber auch alles viel einfacher und da ist eine Datums Einstellung irdgendwo im MS SQL Setup?
Wuerde mich auch interessieren, insbesondere fuer Applicationen, die mit SQL 2005 und SQL 2008 laufen muessen.
Markus