Datensatz wird mit timestamp gespeichert. Nur von heute ausgeben
Thorsten
- datenbank
- mysql
Erstens, super Forum!
Zweitens:
Ich speicher meine Datensätze in einer MYSL Datenbank an. Jeder Datensatz wird mit einem Datum (timestamp 2020-10-09 13:31:29) versehen.
Nun möchte ich mir alle Datensätze von heute ausgeben. Abe rich habe Probleme mit der Uhrzeit.
Kann ich nur direkt auf das Datum zugreifen.
Thorsten
Hallo Thorsten,
es gibt die SQL Funktion DATE(). Ich meine, die benutzt man z.B. so:
select id, foo, bar, bla, dings
from aTable
where DATE(datum) = CURDATE()
Wenn eine Query dieser Art zeitkritisch ist, kannst Du auch überlegen, Datum und Uhrzeit getrennt zu speichern, oder das Datum als materialisierte, berechnete Spalte extra zu führen.
Rolf
Hi,
es gibt die SQL Funktion DATE(). Ich meine, die benutzt man z.B. so:
select id, foo, bar, bla, dings from aTable where DATE(datum) = CURDATE()
curdate liefert das aktuelle Datum mit Uhrzeit 0:00:00.
Ein einfacher Vergleich datum > curdate()
reicht. Dann muß nicht für jede Zeile erst die DATE-Funktion angewandt werden.
cu,
Andreas a/k/a MudGuard
Hallo Andreas,
ist dein 00:00:00 vielleicht ein Artefakt deiner Ausgabe? Vielleicht ist ein DATE in MySQL ja auch als DATETIME mit Zeit=0 implementiert, keine Ahnung.
Laut Handbuch liefert CURDATE jedenfalls ein DATE, kein DATETIME. Und ich habe das Statement mit einer TIMESTAMP-Spalte ausprobiert (deren Zeitwerte nicht 0 waren), es hat funktioniert.
Rolf