Von Timestamp nur Uhrzeit abfragen

Von Timestamp nur Uhrzeit abfragen

am 04.02.2006 16:13:45 von Dirk Einecke

Hi,

ich habe in einer MySQL-DB Termine bei denen das Datum/ Uhrzeit als
PHP-Timestamp abgelegt ist. Nun möchte ich alle Termine Abfragen, bei
denen die Uhrzeit z.B. gleich 7:00 Uhr ist. Kann man eine solche
Bedingung in eine SQL-Abfrage einbauen? Wenn ja - wie?

MfG
Dirk Einecke

Re: Von Timestamp nur Uhrzeit abfragen

am 04.02.2006 16:52:24 von Holger Pollmann

"Dirk Einecke" schrieb:

> ich habe in einer MySQL-DB Termine bei denen das Datum/ Uhrzeit als
> PHP-Timestamp abgelegt ist. Nun möchte ich alle Termine Abfragen, bei
> denen die Uhrzeit z.B. gleich 7:00 Uhr ist. Kann man eine solche
> Bedingung in eine SQL-Abfrage einbauen? Wenn ja - wie?

Tja, was heißt PHP-Timestamp bei dir?

Wenn das ganze eine Spalte vom Typ DATETIME wäre, ginge es (ungetestet)
ungefähr so:

SELECT * FROM tabelle WHERE TIME(datetimecol) = '07:00:00'

tabelle ist der Name der Tabelle in der DB, datetimecol ist der
Spaltenname der Spalte, in der Datum/Uhrzeit als DATETIME drinstehen.

--
( ROT-13 if you want to email me directly: uvuc@ervzjrexre.qr )
"Sie tragen Trauer? Der Untergang der DDR?" - "Nein, Leni Riefenstahl.
Der Führer hat sie zu sich genommen." -- Abschiedsshow Scheibenwischer,
02.10.2003

Re: Von Timestamp nur Uhrzeit abfragen

am 04.02.2006 20:31:50 von Dirk Einecke

Hi,

Holger Pollmann schrieb:
> Tja, was heißt PHP-Timestamp bei dir?

Also sowas: 1139046719 ... das was bei
herauskommt.

> Wenn das ganze eine Spalte vom Typ DATETIME wäre, ginge es (ungetestet)
> ungefähr so:

Die Spalte ist aber vom Typ int(11) - daran kann ich auch nichts
ändern. Habe ich leider nicht gemacht und keinen Einfluß darauf.

MfG
Dirk Einecke

Re: Von Timestamp nur Uhrzeit abfragen

am 04.02.2006 20:41:25 von Holger Pollmann

"Dirk Einecke" schrieb:

>> Tja, was heißt PHP-Timestamp bei dir?
>
> Also sowas: 1139046719 ... das was bei
> herauskommt.

Also ein Unix-Timestamp. Sach das doch :-)

>> Wenn das ganze eine Spalte vom Typ DATETIME wäre, ginge es
>> (ungetestet) ungefähr so:
>
> Die Spalte ist aber vom Typ int(11) - daran kann ich auch nichts
> ändern. Habe ich leider nicht gemacht und keinen Einfluß darauf.

Okay, dann probier mal folgendes:

SELECT * FROM tabelle
WHERE FROM_UNIXTIME(TIME(datetimecol)) = '07:00:00'

--
( ROT-13 if you want to email me directly: uvuc@ervzjrexre.qr )
"Sie tragen Trauer? Der Untergang der DDR?" - "Nein, Leni Riefenstahl. Der
Führer hat sie zu sich genommen." -- Abschiedsshow Scheibenwischer,
02.10.2003

Re: Von Timestamp nur Uhrzeit abfragen

am 04.02.2006 21:17:34 von Dirk Einecke

Hi,

Holger Pollmann schrieb:
> Okay, dann probier mal folgendes:
>
> SELECT * FROM tabelle
> WHERE FROM_UNIXTIME(TIME(datetimecol)) =3D '07:00:00'

mh. ... da bekomme ich kein Ergebnis. Kann man sich den Wert von
datetimecol auch irgendwie in dem Format wie in der WHERE-Klausel
ausgeben lassen damit man mal sieht ob man auch auf den richtigen Wert
prüft?

MfG
Dirk Einecke

Re: Von Timestamp nur Uhrzeit abfragen

am 04.02.2006 22:35:49 von Holger Pollmann

"Dirk Einecke" schrieb:

>> Okay, dann probier mal folgendes:
>>
>> SELECT * FROM tabelle
>> WHERE FROM_UNIXTIME(TIME(datetimecol)) = '07:00:00'
>
> mh. ... da bekomme ich kein Ergebnis.

Und zurecht. Ich Blödtrollel hab die Reihenfolge vertauscht. Also
nochmal:

SELECT * FROM tabelle
WHERE TIME(FROM_UNIXTIME(datetimecol)) = '07:00:00'

--
( ROT-13 if you want to email me directly: uvuc@ervzjrexre.qr )
"Sie tragen Trauer? Der Untergang der DDR?" - "Nein, Leni Riefenstahl.
Der Führer hat sie zu sich genommen." -- Abschiedsshow Scheibenwischer,
02.10.2003

Re: Von Timestamp nur Uhrzeit abfragen

am 04.02.2006 23:53:39 von Joerg Behrens

Holger Pollmann schrieb:
> "Dirk Einecke" schrieb:
>
>
>>>Okay, dann probier mal folgendes:
>>>
>>> SELECT * FROM tabelle
>>> WHERE FROM_UNIXTIME(TIME(datetimecol)) = '07:00:00'
>>
>>mh. ... da bekomme ich kein Ergebnis.
>
>
> Und zurecht. Ich Blödtrollel hab die Reihenfolge vertauscht. Also
> nochmal:
>
> SELECT * FROM tabelle
> WHERE TIME(FROM_UNIXTIME(datetimecol)) = '07:00:00'
>

Nur der Hinweis das sowas einen Fulltablescan braucht und bei
entsprechender Anzahl an Datensaetzen ein Performancekiller ist.

Desweiteren ist die Frage in der Newsgroup nicht ganz ONTOPIC da es hier
um reines (MY)SQL geht.

Gruss
Joerg

Re: Von Timestamp nur Uhrzeit abfragen

am 05.02.2006 00:20:26 von Niels Braczek

Joerg Behrens schrieb:
> Holger Pollmann schrieb:

>> SELECT * FROM tabelle
>> WHERE TIME(FROM_UNIXTIME(datetimecol)) = '07:00:00'
>
> Nur der Hinweis das sowas einen Fulltablescan braucht und bei
> entsprechender Anzahl an Datensaetzen ein Performancekiller ist.

Das ist der Preis für kaputtes DB-Design.

> Desweiteren ist die Frage in der Newsgroup nicht ganz ONTOPIC da es hier
> um reines (MY)SQL geht.

ACK.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----

Re: Von Timestamp nur Uhrzeit abfragen

am 05.02.2006 00:30:49 von Dirk Einecke

Hi,

Holger Pollmann schrieb:
> SELECT * FROM tabelle
> WHERE TIME(FROM_UNIXTIME(datetimecol)) =3D '07:00:00'

Genau so geht es!
Vielen Dank für die Unterstützung.

MfG
Dirk Einecke