Forum: Datenbanken
Delphi
by stahli,
17. Okt 2007
Der ganzzahlige Teil von TDateTime enthält den Tag, der Nachkommateil die Stunden, Minuten, Sekunden und Millisekunden (0,5 entspricht 12 Uhr Mittags).
Du kannst die Differenzzeit von DateTime genau so ermitteln wie von Time. Bei Umwandlung in Time musst Du noch beachten, dass Du nicht über einen Tageswechsel hinaus kommst. Sonst funktioniert das ganze natürlich nicht mehr (1:00 Uhr - 23:00...
Forum: Datenbanken
Delphi
by stahli,
16. Okt 2007
... ja doch, brauchen wir wenn der Wecker kaputt ist, und man länger als bis zum Feierabend schläft ;-)
Ich könnte z.B. jetzt alle Datensätze vor 1899 löschen und das würde die Funktionsweise nicht weiter stören.
Man könnte natürlich auch eine extra Tabelle T_BerechneteWerte einführen. Das hielt ich aber nicht unbedingt für sinnvoll, das es für jeden Tag nur einen Datensatz gibt.
Forum: Datenbanken
Delphi
by stahli,
16. Okt 2007
Ich (als Hobbyprogrammierer) würde das aber nicht als Mehrfachspeicherung ansehen.
Mehrfachspeicherung würde ich so sehen, dass ein Name oder eine Uhrzeit MEHRFACH in der Datenbank abgelegt sind. Das ist ja aber nicht der Fall.
Ich berechne speichere lediglich berechnete Werte in der Datenbank ab und gehe für weitere Berechnungen von diesen aus. Sonst müsste man ja bei jeder...
Forum: Datenbanken
Delphi
by stahli,
16. Okt 2007
Na ja, man muss ja mindestens einen "Eingangssaldo" speichern (wenn z.B. ein Beamter neu in unser Amt wechselt und Überstunden mitbringt). Ab dem Zeitpunkt kann man dann das Saldo ständig neu berechnen lassen. Nach 40 Dienstjahren hat das Programm dann aber viel zu tun ;-)
Daher wäre mindestens zum Monatswechsel sinnvoll einen neuen Saldo zu speichern und von diesem aus weiter zu rechnen. Wenn...
Forum: Datenbanken
Delphi
by stahli,
12. Okt 2007
eigentlich gehuppt wie gesprungen
Man muss in jedem Fall irgend etwas umrechnen oder umformatieren.
Wenn man DateTime für die Verwaltung von xx Minuten verwendet sieht das zumindest in eine TTable nicht sehr geschickt aus.
Aus jetziger Sicht würde ich daher für Dauer-Daten (die sich nicht über Tage und Monate erstrecken) Minuten oder Sekunden in Integerfeldern speichern.
Forum: Datenbanken
Delphi
by stahli,
12. Okt 2007
In einem aktuellen Firebird-Projekt nutze ich für Start- und Endezeiten TDateTime-Felder.
Alle Felder, die eine Dauer beinhalten (berechnete oder vorgegebene) sind Integer und beinhalten die Sekunden. Differenzen zwischen zwei TDateTime kann man ja leicht in Sekunden umrechnen.
Die Darstellung der Dauer erfolgt dann über eine Funktion (bei Wert 75: "noch 1:15 min").
Änderungen von...
Forum: Datenbanken
Delphi
by stahli,
12. Okt 2007
@guidok:
Weil Du dann ein Datum+Uhrzeit als Differenz erhältst.
12.10.07 12:30 Uhr - 12.10.07 12:00 Uhr ergibt dann sowas wie 01.01.1800 00:30 Uhr.
Wenn man das als "30 Minuten" interpretieren will muss man auch wieder herumrechnen.
Daher besser gleich alles in Minuten oder Sekunden speichern...
@Salomon:
So, ich mach´s gleich in der Mittagspause...
Forum: Datenbanken
Delphi
by stahli,
12. Okt 2007
Ja, jeder Nutzer gibt seine Zeiten auch selbständig ein. Man kann auf jedem Rechner mehrere Nutzer freigeben (steht alles allerdings ganz simpel in einer Ini).
Ist ein Monat komplett eingegeben, kann der jeweilige Chef den Monat abhaken, dann kann nichts mehr manipuliert werden (jedenfalls nicht von meinen Leuten :-) ).
Ich muss Dich mal auf´s WE vertrösten und stelle das Geraffel dann hier...