AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken FreePascal Wie am besten ein Datum und eine Uhrzeit in der DB speichern?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie am besten ein Datum und eine Uhrzeit in der DB speichern?

Ein Thema von AlexII · begonnen am 20. Nov 2014 · letzter Beitrag vom 21. Nov 2014
Antwort Antwort
Seite 3 von 3     123   
AlexII

Registriert seit: 28. Apr 2008
1.717 Beiträge
 
FreePascal / Lazarus
 
#21

AW: Wie am besten ein Datum und eine Uhrzeit in der DB speichern?

  Alt 20. Nov 2014, 21:52
Kommt drauf an, welche ISO-Norm man hier anwendet.
Ich dachte wir hätten uns demokratisch auf 8601 geeinigt

Man muss sich für das richtige! entscheiden und nicht für das der Masse. Die Mehrheit irrt sich oft. Aber ich diesem Fall ist alles ok!
Bin Hobbyprogrammierer! Meine Fragen beziehen sich meistens auf Lazarus!
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#22

AW: Wie am besten ein Datum und eine Uhrzeit in der DB speichern?

  Alt 21. Nov 2014, 02:31
Alle anderen Punkte (Filtern/Teile/...) lässt sich prima mit dem ISO-Format machen.
Wie genau würde ein SELECT für 'zwischen 10:00' und '13:00' aussehen? Also, das es 'prima' ist? Ich würde -allgemein gesehen- eher überlegen, welche Abfragen zu erwarten sind. Es wäre nämlich auch denkbar, Datum und Uhrzeit getrennt abzulegen. Dies ist sinnvoll, wenn ich immer nur ganze Tage betrachten will (auch als Zeitraum) und vielleicht separat noch die Uhrzeit (Schichtbetrieb, Arbeitszeit etc.) Weiterhin bietet das reine Datum noch die Möglichkeit, die Tabelle mit einer date dimension table zu verknüpfen, was komplexeren Auswertungen Tür und Tor öffnet.

Platz spielt im Jahr 2014 und angesichts von GB-Telefonen und TB-Festplatten keine primäre Rolle mehr: Klar, zu verschwenderisch sollte man damit nicht umgehen, aber ob ich für ein Datum 4, 6, 8 oder wasweißich 24 Bytes belege, ist -zumal wir von SQLite reden- nicht weltherrschaftsentscheidend.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.640 Beiträge
 
#23

AW: Wie am besten ein Datum und eine Uhrzeit in der DB speichern?

  Alt 21. Nov 2014, 08:04
Ok... dann lässt sich wohl auch die Suche in dem DateTime Feld realisieren, muss nur rausfinden wie. ))
Ist relativ einfach:

Code:
SELECT Col1, Col1
FROM MyTable
WHERE DateField >= '2014-11-21 06:00';

-- oder

SELECT Col1, Col1
FROM MyTable
WHERE DateField BETWEEN '2014-11-01 06:00' AND '2014-11-05 18:00';
Eine Sache solltest Du Dir vorher noch überlegen: Könntest Du, möglicherweise, unter irgendwelchen Umständen, vielleicht, mal auf die Idee kommen, zum einen unterschiedliche Zeitzonen zu bearbeiten? Oder musst Du die Einträge in der doppelten Stunde bei einer Zeitumstellung auf Winterzeit (also zwischen 2 und 3 Uhr an einem Sonntag) in die richtige Reihenfolge bringen können? Also willst Du bei zwei Einträgen um jeweils 02:15 Uhr wissen, welches der beiden 02:15 vor oder nach der Zeitumstellung war?

Falls Du eines der beiden mit Ja beantworten kannst, dann solltest Du alle Zeiten vor der Ablage in der Datenbank in UTC konvertieren. Dann musst Du zwar die Daten vor der Anzeige immer wieder in lokale Zeit umrechnen, aber dafür gibt es in den DateUtils ein paar passende Funktionen, die das recht einfach machen. Der Vorteil ist halt, dass Du immer genau weisst, was da in der DB steht.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#24

AW: Wie am besten ein Datum und eine Uhrzeit in der DB speichern?

  Alt 21. Nov 2014, 09:01
Alle anderen Punkte (Filtern/Teile/...) lässt sich prima mit dem ISO-Format machen.
Wie genau würde ein SELECT für 'zwischen 10:00' und '13:00' aussehen? Also, das es 'prima' ist?
Einträge sind in der Art: yyyy-mm-dd hh:nn:ss

Pseudo-SQL (Mit Delphi-Funktionen):

Code:
select * from mytable where Copy(myFeld, 12, 5) >= '10:00' and Copy(myFeld, 12, 5) <= '12:59'
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#25

AW: Wie am besten ein Datum und eine Uhrzeit in der DB speichern?

  Alt 21. Nov 2014, 12:12
Dies ist sinnvoll, wenn ich immer nur ganze Tage betrachten will (auch als Zeitraum) und vielleicht separat noch die Uhrzeit (Schichtbetrieb, Arbeitszeit etc.)
wenn Du nur das Datum benötigst, dann arbete mit
trunc(datefield) z.b.
SQL-Code:
select 'Es ist Weihnachten'
from dual
where trunc(sysdate)=to_date('20141224','YYYYMMDD')
Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:30 Uhr.
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