Einträge anzeigen mit Datum
Klaus
- php
0 Manuel B.0 globe0 Vinzenz Mai
Hi zusammen
Ich bastle gerade ein kleines Forum zusammen.
Doch momentan, will bei mir der Groschen nicht fallen. Bei den Forumseinträgen speichere ich das Datum im Format "2005-11-26 10:36:30".
Wie bringe ich es nun im Query fertig, dass es mir nur die Einträge von heute und die von gestern anzeigt?
Hat mir jemand von euch einen kleinen Tipp?
Dank euch schon mal im voraus recht herzlich.
Gruss
Klaus
Hi,
Hat mir jemand von euch einen kleinen Tipp?
Dank euch schon mal im voraus recht herzlich.
Entweder, du erzeugst einen entsprechenden String und übergibst den an WHERE-Statement, oder, besser, du nutzt die internen Datumsfunktionen, die auch mit diesemm Striung umgehen können. DAY(), MONTH() und YEAR() hab ich damit schon oft benutzt und nie Probleme gehabt.
n'abend,
Hi zusammen
Bei den Forumseinträgen speichere ich das Datum im Format "2005-11-26 10:36:30".
warum nicht als timestamp? ist imho einfacher zu handeln...
Wie bringe ich es nun im Query fertig, dass es mir nur die Einträge von heute und die von gestern anzeigt?
operatoren wie > < = funktionieren auch für strings...
Hat mir jemand von euch einen kleinen Tipp?
SELECT blubb_column FROM bla_table WHERE date_column > "2005-11-24 00:00:00"
das kannst du entweder per script (php?) generieren lassen, oder die MySQL internen Date-Funktionen benutzen... mehr infos findest du dazu im MySQL manual!
weiterhin schönen abend...
Hallo globe,
Bei den Forumseinträgen speichere ich das Datum im Format "2005-11-26 10:36:30".
warum nicht als timestamp? ist imho einfacher zu handeln...
nein, das ist keine gute Idee. Für Zeitangaben ist der Datentyp Datetime angemessen, nicht der Datentyp timestamp, der je nach Datenbankmanagementsystem (DBMS) und Konfiguration desselben mit einem gewissen Zauber ausgestattet ist, wie z.B. in der MySQL-Doku für MySQL zu entnehmen ist. Bei anderen DBMS ist es ähnlich.
Freundliche Grüße
Vinzenz
n'abend,
nein, das ist keine gute Idee. Für Zeitangaben ist der Datentyp Datetime angemessen, nicht der Datentyp timestamp, der je nach Datenbankmanagementsystem (DBMS) und Konfiguration desselben mit einem gewissen Zauber ausgestattet ist, wie z.B. in der MySQL-Doku für MySQL zu entnehmen ist. Bei anderen DBMS ist es ähnlich.
ich dachte auch weniger an den komischen datentyp timestamp zu benutzen, als einen timestamp (durchs script oder mysql) in einem integer-feld zu speichern... schliesslich ist ein timestamp nix anderes als ein int und int ist wesentlich portabler... (abgesehen davon brauchts nicht NULL sein... was wiederrum vorteile mit sich bringt...)
ich fahre mit dieser mehtode für meine systeme recht gut... und kann mir nur schwerlich vorstellen, dass string-comparisons (wie es bei datetime wohl der fall wäre) schneller als int-comparisons sind...
weiterhin schönen abend...
hi,
ich dachte auch weniger an den komischen datentyp timestamp zu benutzen, als einen timestamp (durchs script oder mysql) in einem integer-feld zu speichern...
Also noch schlimmer ...
schliesslich ist ein timestamp nix anderes als ein int und int ist wesentlich portabler...
Wenig überzeugendes Argument.
Wenn du einen der MySQL-Datumstypen nutzt, kannst du diesen sehr einfach für Berechnungen und Einschränkungen nutzen, bspw. nach Tag oder Monat gruppieren.
Beim Unix Timestamp ist dafür immer erst eine Umrechnung erforderlich.
ich fahre mit dieser mehtode für meine systeme recht gut... und kann mir nur schwerlich vorstellen, dass string-comparisons (wie es bei datetime wohl der fall wäre) schneller als int-comparisons sind...
Dann mach dir bitte klar, dass es u.U. mehr Arten gibt, Daten zu selektieren, als einfache Intervalabfragen.
gruß,
wahsaga
Hallo
Dann mach dir bitte klar, dass es u.U. mehr Arten gibt, Daten zu selektieren, als einfache Intervalabfragen.
z.B. der berüchtigte Geburtstagskalender ...
Freundliche Grüße
Vinzenz