"Heute" in vorhandenen timestamps suchen

goisgo

Grünschnabel
Hallo Community,

ich habe die undankbare Aufgabe eine Selection in einer MySQL (4.0.25) Datenbank vorzunehmen. Es sind alle Einträge auszuwählen, deren Spalte "Eintragsdatum" (ein timestamp) dem heutigen Datum entsprechen. Die Einträge, die in der TABLE vorliegen, wurden via PHP ausgeführt ($jetzteintrag = time())......

Problem also (für mich):
Heute == 17.07.2007 00:00:00 bis 23:59:59 Uhr

Suche alle Datensätze, deren timestamp im Feld "Eintragsdatum" in das Datum passen.

Geht dies mit einem MySQL Statement, oder muss ich das Problem mit PHP lösen - da es PHP auch verursacht hat?

LG,
Peter
 
Hallo!

Ich würde mit mktime() den Start- und Endzeitpunkt berechnen und dann im Query zwischen diesen Zeitpunkten mit BETWEEN suchen.

Gruss Dr Dau

[edit]
Ähm, das Datumsfeld sollte schon vom Typ INT sein.
[/edit]
 
Danke für die Antwort.
Allerdings wollte ich es direkt über einen DB-Select lösen. Über PHP würde ich einfach den Datenbankwert (timestamp) mit $test = date("d.m.Y",$daten['dbeintrag']) und dem heute = $heute = date("d.m.Y",time()); vergleichen und dadurch den output steuern.
Ja, der var(10) macht wenig Sinn.

LG,
Peter
 
Hi,

Du könntest die Funktion UNIX_TIMESTAMP und CURDATE verwenden:
SQL:
select * from xyz where
row between UNIX_TIMESTAMP(CURDATE()) and UNIX_TIMESTAMP(CURDATE()) + 24 * 60 * 60;

Gruß
 
Zuletzt bearbeitet:
Du hättest auch einfach statt INT oder VARCHAR den Spaltentyp DATETIME nehmen können. Dann hättest du einfach mit TO_DAY([datum]) arbeiten können. Im übrigen MySQL macht dir in diesem fall automatisch aus dem Timestamp von PHP das DATETIME - Format.

Brauchst also deine Scripte nicht anfassen.

Gruss
MixTer
 
Hi.Verwechselst du da evtl. irgendwas, denn bei mir gibt es keine to_day Funktion.
Gruß

UPS du hast recht ^^ Die hab ich mir mal selber geschrieben ein Stored Procedure... weil sowas ähnliches hatte ich auch mal....

Hab nur schnell die SQL gesucht und die "Funktion" kopiert. Dabei übersehen, dass des keine Native MySQL ist. Ich poste morgen aber mal den Code zu dem Ding bin leider schon daheim und hab keinen zugriff auf das Entwicklungssystem.

Die Funktion macht nichts anderes wie die Timestamps in Tage umzuwandeln (Tage ab beginn der Unixepoche). Diese kannst du dann einfach von einander abziehen und wenn 0 rauskommt ist es "heute" ^^

Gruss
MixTer
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück