Datum vergleichen

Y05h1

Mitglied
Hi!

Wie kann ich am besten alle Einträge nach einem bestimmten Datum auslesen?
Und welches Format muss die Spalte mit dem datum haben?
Ich habe bereits die suche verwendet, habe aber nichts passendes gefunden.

Y05h1
 
Eine Datumsspalte sollte IMHO immer als DATE oder (i.V.m. Uhrzeit) als DATETIME definiert werden. Wenn das Datum/die Uhrzeit Änderungen am Datensatz kennzeichnen soll, ist der passende Spaltentyp TIMESTAMP.
Dazu gibt es aber auch andere Meinungen.
Wenn Du nur auf das Datum, also den Tag Wert legst, sollte folgende WHERE-Klausel zum Erfolg führen:
Code:
... WHERE TO_DAYS(`datumsspalte`)>TO_DAYS('Referenzdatum im Format YYYY-MM-DD')
MySQL kennt noch viele weitere Datums- und Zeit-Funktionen.

Gruß hpvw
 
Ich habe eine ähnliche Frage... Also ich habe in meine Mysql-Db ein Datum eingetragen und zwar als timestamp und es in ein "int" Feld gespeichert. In meinem Script ermittel ich das Datum von heute und ziehe dann die gespeicherte Zeit von "$heute" ab. Dann hab ich mein gewünschtes Ergebnis...
DACHTE ICH ... das Problem war, das es natürlich nicht in 60er Schritten gerechnet wurde sondern in 100er... folglich hatte ich dann eine Zeit angeben von 2h 69min und 99sek. was ich eig. nicht wollte. Hat jemand eine Lösung
 
1) Ein Timestamp ist eine Long-Zahl und passt demzufolge nicht in eine int-Spalte (wenn das dein DBMS unterstützt, okay, eine saubere Lösung ist das aber nicht)

2) Ein Timestamp gibt die Zahl der seit dem 1.1.1970 0:00 vergangen Sekunden an ==> wenn du jetzt von $heute den alten timestamp abziehst, dann bekommst du eine Differenz in Sekunden.
Wenn du jetzt nicht das hast, was du haben willst, dann rechnest du das ganze einfach falsch um!

$stunden = timestamp / (60 * 60 * 60)
$minuten = timestamp / (60 * 60) - $stunden * 60
$sekunden = timestamp % 60;

Is schon recht spät, darum übernehme ich jetzt mal keine Garantie für die Umrechnung (zudem ist sie jetzt mal ungetestet)

shutdown
 
wie gesagt, es war schon recht spät (isses jetzt auch wieder)
und ich bin eigentlich auch nicht davon ausgegangen, dass diese Formel stimmt ^^

Ich probiers nochmal:

$sekunden = $timestamp % 60;
$minuten = ($timestamp % 3600) / 60;
$stunden = ($timestamp % (3600*60)) / 60;
 
Das Problem ist das es, soblad es in die "Tage" geht also die Zahl ( =Differenz) größer als 999999 ist, nicht mehr klappt...
 

Neue Beiträge

Zurück