Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Zeit (TDateTime) ohne Datum in Datenbank speichern (https://www.delphipraxis.net/80456-zeit-tdatetime-ohne-datum-datenbank-speichern.html)

hirnstroem 9. Nov 2006 08:40

Datenbank: Access • Version: kA • Zugriff über: ADO

Zeit (TDateTime) ohne Datum in Datenbank speichern
 
'loha Folks,

ich versuche eine Zeit (HH:MM) in der Datenbank abzuspeichern. Wenn z.B. 12:00 eingegeben und gespeichert wird, wird die Zeit automatisch mit dem Datum ergänzt.

In der Datenbank ist der entsprechende Felddatentyp als als Datum/Uhrzeit definiert und das Format ist auf Zeit, 24Std eingestellt, das Eingabeformat ist 00:00;0;_.

Das entsprechende Feld im ADODataSet wurde die Eigenschaft EditMask auf !90:00;1;_ eingestellt.

Der Datentyp in der Feld-Definition ist ftTime.

Kann irgendwie verhindert werden, dass das Datum nun dennoch angehängt wird?

Grüsse
hirnstroem

shmia 9. Nov 2006 09:11

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Zitat:

Zitat von hirnstroem
ich versuche eine Zeit (HH:MM) in der Datenbank abzuspeichern. Wenn z.B. 12:00 eingegeben und gespeichert wird, wird die Zeit automatisch mit dem Datum ergänzt.

In der Datenbank ist der entsprechende Felddatentyp als als Datum/Uhrzeit definiert und das Format ist auf Zeit, 24Std eingestellt, das Eingabeformat ist 00:00;0;_.

Die Einstellungen in der Datenbank spielen für ADO/Delphi keine Rolle!
Dies wirkt sich nur auf die Darstellung in der Anwendung MS Access aus.

Gib den Feld mal das DisplayFormat 'hh:nn'; das sollte helfen.

hirnstroem 9. Nov 2006 09:23

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Danke für die prompte Antwort.

Der Eigenschaft DisplayFormat kann ich zuweisen was ich will, es ändert leider nichts daran, dass die Eingabe mit dem Datum ergänzt wird.

Aus 12:00 wird jeweils 30.12.1899 12:00:00.

Balu der Bär 9. Nov 2006 09:24

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten? :gruebel:

marabu 9. Nov 2006 09:28

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
In der Datenbank wird immer Datum und Uhrzeit gespeichert. Der Datumsanteil 0 führt zur Interpretation 30.12.1899, Abhilfe bei der Darstellung schafft der Hinweis von Andreas.

Grüße vom marabu

shmia 9. Nov 2006 09:34

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Zitat:

Zitat von hirnstroem
Der Eigenschaft DisplayFormat kann ich zuweisen was ich will, es ändert leider nichts daran, dass die Eingabe mit dem Datum ergänzt wird.
Aus 12:00 wird jeweils 30.12.1899 12:00:00.

WO wird die Eingabe mit dem Datum geändert? (In der Delphi-Anwendung oder in Access)
Bist du dir 1000% sicher, dass du das Displayformat vom richtigen Feld geändert hast?

Darkchild 9. Nov 2006 11:04

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Hallo,

also entweder Du benutzt den Datentypen Ttime oder Du kannst auch den Feldtypen in der Datenbank von Date auf String setzten und das ganze dann in delphi per Datentypumwandlung von TTime zu String wandeln und dann so in der Datenbank wegspeichern, ist zwar nicht elegant aber geht, ist nur die Frage ob Du den Date Typen in der DB brauchst oder nicht, oder ob das Speichern des Wertes als String auch ok ist.

Ist halt nur ne Idee.

Gruss
Darkchild

hirnstroem 9. Nov 2006 11:18

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Zitat:

Zitat von Balu der Bär
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten? :gruebel:

Ja, habe ich. Das mit TDateTime entspricht auch nicht ganz der Wahrheit wie ich gerade sehe. Dies wird lediglich benutzt um Datensätze zu kopieren. Wie auch immer, jetzt wird TTime benutzt und der Datentyp unter FieldDefs ist sowieso schon immer ftTime gewesen.

Zitat:

Zitat von shmia
WO wird die Eingabe mit dem Datum geändert? (In der Delphi-Anwendung oder in Access)
Bist du dir 1000% sicher, dass du das Displayformat vom richtigen Feld geändert hast?

Bin mindestens zu 1000% sicher, denn die Tabelle wurde versuchshalber mit nur diesem einen Feld ausgestattet.



Argh, jetzt funtkioniert es auf einmal und ich weiss nicht weshalb -.-

Vielen Dank für die Hilfe..

raiguen 9. Nov 2006 11:19

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Moin :-)
Die Einstellungen/Eigenschaften DisplayFormat und EditMask sind nur für das Frontend - sprich der DelphiAnwendung interessant und auch nur für den Benutzer 'wichtig'. Es dürfte hinreichend bekannt sein, dass DisplayFormat - wie das Wort Display=Ansicht schon sagt - die Darstellung=Anzeige des Feldwertes 'anpasst' und dass EditMask dem Anwender nur eine 'Hilfe' gibt, wie die Eingabe richtig zu sein hat.

Zitat:

Zitat von marabu
In der Datenbank wird immer Datum und Uhrzeit gespeichert. Der Datumsanteil 0 führt zur Interpretation 30.12.1899...

Genau: weil der FeldTyp in der Datenbank DateTime ist ;-)

Zitat:

Zitat von shmia
WO wird die Eingabe mit dem Datum geändert? (In der Delphi-Anwendung oder in Access)

In Access, also in der Datenbank! s.o.

Zitat:

Zitat von Balu der Bär
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten? :gruebel:

Richtig! Wenn nur mit Zeit gearbeitet werden soll, dann empfiehlt sich das

//EDIT: wo war der rote Kasten :gruebel:

TeronG 9. Nov 2006 11:31

Re: Zeit (TDateTime) ohne Datum in Datenbank speichern
 
Zitat:

Zitat von raiguen
Zitat:

Zitat von Balu der Bär
Im Threadtitel steht das du mit TDateTime arbeitest, schon einmal dran gedacht nur mit TTime zu arbeiten? :gruebel:

Richtig! Wenn nur mit Zeit gearbeitet werden soll, dann empfiehlt sich das

:gruebel: Warum eigentlich? Auch TTime kann ich zahlen >= 1 zuweisen ohne das ich ne Meldung oder sonnst was bekomme ...

Zitat:

Zitat von Controls.pas
TDate = type TDateTime;
TTime = type TDateTime;
TDateTime = type Double;

Mag ja sein, daß ich was übersehe ... aber was!?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:15 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz