I en accessdatabas har jag definierat ett fält "tid" av typen Datum/tid/långt tidsformat ex: 18:35:12
samt "datum" som kort datum ex: 2003-12-02
Kontroll i databasen med access visar att de är lagrade korrekt enligt exemplen.
När jag kopplar ett datafält tex dbgrid eller dbedit till fältet "tid" så visas årtalet 1899-12-30 framför tiden i fältet "tid" med ett blanktecken emellan ex. 1899-12-30 17:45:03.
Årtalet som visas i fältet "tid" är det samma i alla fält oavsett klockslag och är något som Delphi lägger till av någon orsak. Jag använder Delphi ver 6.
Jag har provat med kort tidsformat i databasens fält "tid" men samma fel kvarstår.
Årtalet i fältet "datum" helt visas korrekt.
Delphi Access problem
2 svar · 223 visningar · startad av urban_hahne
TDatetime är egentligen ett flyttal där heltalsdelen är antal dagar sedan 1899-12-30 och decimaldelen är hur stor del av dagen som har gått.
Det betyder att 2003-11-20 12:00 lagras som 37945,5.
En "tom" datetime variabel är default 0, alltså 1899-12-30.
Testa att lägga in en rad i databasen som innehåller t.ex. dagens datum så ska det nog fungera.
Problemet med time
Så här funkade det bra med datum.
start kod:
procedure TAnnonsMainForm.Table1AfterOpen(DataSet: TDataSet);
begin
TDateTimeField(DataSet.Fields[nr]).DisplayFormat := 'tt';
DataSet.Fields[nr].EditMask := '00:00:00';
end;
slut kod.
där nr är indexnummret på datafältet tid.