SQL datetime <= letzten 30 Minuten

Moin,

ich versuche gerade ein SQL Query zu erstellen welches mir alle Einträge
ausgeben soll, die innerhalb der jeweils letzten halben Stunde erstellt
worden sind.

Habe da allerdings auf eine Denkblockade:

Gebraucht wird ja das aktuelle Datum mit Uhrzeit.
Davon muss man nun 30 minuten abziehen.

Dieser Neue Wert wird dann in das Query gekippt.

Und genau bei den "letzten 30 Minuten" hänge ich fest. :-(

Gibt es die Möglichkeit es über SQL zu lösen oder sollte ich vorher das
datetime mittels PHP zurückrechnen und dann in die Query einkippen?

Hier mein Ansatz (mittels php?:

<?php

$current_datetime = date('Y-m-d H:i:s');
$search_datetime = '' // HIER KOMME ICH NICHT WEITER

$query = 'SELECT * FROM test_table WHERE id = 1 AND firstdate <=
"'.$_search_datetime.'"';

?>

Danke für Tipps...

Netten Gruß
Ben
Ben Butschko [ Mi, 19 Dezember 2007 10:39 ] [ ID #1890727 ]

Re: SQL datetime <= letzten 30 Minuten

Die Lösung ist schon gefunden. Mich würde nur noch interessieren ob es
auch direkt in MySQL geht :-)

$_search_datetime = date('Y-m-d H:i:s', strtotime("-30 minutes"));

Netten Gruß
Ben

"Ben Butschko" <excalibur1976 [at] arcor.de> schrieb im Newsbeitrag
news:4768e6e9$0$17527$9b4e6d93 [at] newsspool4.arcor-online.net.. .
> Moin,
>
> ich versuche gerade ein SQL Query zu erstellen welches mir alle
> Einträge ausgeben soll, die innerhalb der jeweils letzten halben
> Stunde erstellt worden sind.
>
> Habe da allerdings auf eine Denkblockade:
>
> Gebraucht wird ja das aktuelle Datum mit Uhrzeit.
> Davon muss man nun 30 minuten abziehen.
>
> Dieser Neue Wert wird dann in das Query gekippt.
>
> Und genau bei den "letzten 30 Minuten" hänge ich fest. :-(
>
> Gibt es die Möglichkeit es über SQL zu lösen oder sollte ich vorher
> das datetime mittels PHP zurückrechnen und dann in die Query
> einkippen?
>
> Hier mein Ansatz (mittels php?:
>
> <?php
>
> $current_datetime = date('Y-m-d H:i:s');
> $search_datetime = '' // HIER KOMME ICH NICHT WEITER
>
> $query = 'SELECT * FROM test_table WHERE id = 1 AND firstdate <=
> "'.$_search_datetime.'"';
>
> ?>
Ben Butschko [ Mi, 19 Dezember 2007 11:04 ] [ ID #1890731 ]

Re: SQL datetime <= letzten 30 Minuten

Ben Butschko wrote:
> Moin,
>
> ich versuche gerade ein SQL Query zu erstellen welches mir alle
> Einträge ausgeben soll, die innerhalb der jeweils letzten halben
> Stunde erstellt worden sind.
>
> Habe da allerdings auf eine Denkblockade:
>
> Gebraucht wird ja das aktuelle Datum mit Uhrzeit.
> Davon muss man nun 30 minuten abziehen.
>
> Dieser Neue Wert wird dann in das Query gekippt.
> [..]
> $current_datetime = date('Y-m-d H:i:s');
> $search_datetime = '' // HIER KOMME ICH NICHT WEITER
>
> $query = 'SELECT * FROM test_table WHERE id = 1 AND firstdate <=
> "'.$_search_datetime.'"';

Falsche Newsgroup, besser wäre: de.comp.datenbanken.misc bzw. [..].mysql

$query = "
SELECT
*
FROM
test_table as t
WHERE
t.id = 1
AND
t.firstdate
BETWEEN
DATE_SUB(NOW(), INTERVAL 30 MINUTE)
AND
NOW();";

Ich weiss zwar nicht, warum du nach id = 1 suchst, aber vielleicht hat das
schon seine Richtigkeit.

Grüße
Johannes

--
Emails ohne "[nospam]" im Betreff werden kommentarlos gelöscht.
Johannes Mueller [ Mi, 19 Dezember 2007 11:31 ] [ ID #1890733 ]

Re: SQL datetime <= letzten 30 Minuten

Ben Butschko wrote:
> Die Lösung ist schon gefunden. Mich würde nur noch interessieren ob es
> auch direkt in MySQL geht :-)

Ja, es geht. Wie wäre es mal mit dem Mysql-Manual?
Stefan Dreyer [ Mi, 19 Dezember 2007 11:36 ] [ ID #1890734 ]

Re: SQL datetime <= letzten 30 Minuten

"Johannes Mueller" <johannes_m [at] gmx.net> schrieb im Newsbeitrag
news:5ssa7bF19kkd5U1 [at] mid.uni-berlin.de...
> Falsche Newsgroup, besser wäre: de.comp.datenbanken.misc bzw.
> [..].mysql
Nun, ich dachte zunächst an einer PHP Lösung :-)

> $query = "
> SELECT
> *
> FROM
> test_table as t
> WHERE
> t.id = 1
> AND
> t.firstdate
> BETWEEN
> DATE_SUB(NOW(), INTERVAL 30 MINUTE)
> AND
> NOW();";

Perfekt...Super...Danke sehr...

> Ich weiss zwar nicht, warum du nach id = 1 suchst, aber vielleicht hat
> das schon seine Richtigkeit.

ID kann mehrere Einträge erstellen, ist also nicht auto_increment
(userid wäre wohl treffender gewesen - war jedoch hier nur ein
Beispiel).

Netten Gruß
Ben
Ben Butschko [ Mi, 19 Dezember 2007 11:43 ] [ ID #1890736 ]

Re: SQL datetime <= letzten 30 Minuten

Ben Butschko wrote:

> Die Lösung ist schon gefunden. Mich würde nur noch interessieren ob es
> auch direkt in MySQL geht :-)
>
> $_search_datetime = date('Y-m-d H:i:s', strtotime("-30 minutes"));

Ich nehme jetzt mal an, dass firstdate ein MySQL-DateTime - Feld ist (sonst
machts nämlich keinen Sinn :D )

$query = 'SELECT * FROM test_table WHERE id = 1 AND firstdate >=
DATE_SUB(NOW(),INTERVAL 30 MINUTE)';

(Ich hab das <= noch in >= geändert - sonst bekommst man alle Einträge, die
ÄLTER sind als 30 Minuten, nicht die, die in den letzten 30 Minuten
gepostet wurden.)

Mit freundlichen Grüßen
Andre Meiske

PS: Die Funktion habe ich aus dem MySQL - Handbuch, Abschnitt 'Date and Time
Functions'... da steht das Beispiel zwar mit Tagen statt Minuten, aber.....
Andre Meiske [ Mi, 19 Dezember 2007 11:18 ] [ ID #1890738 ]

Re: SQL datetime <= letzten 30 Minuten

hallo!
folgender sql gibt dir die datensätze zurück, die nicht älter als 30
minuten sind:

SELECT * FROM DeineTabelle WHERE FeldMitDemDateTime >= DATE_SUB(NOW(),
INTERVAL 30 MINUTE)

ich hoffe ich konnte dir ein wenig helfen.

lg
sven

Ben Butschko schrieb:
> Moin,
>
> ich versuche gerade ein SQL Query zu erstellen welches mir alle Einträge
> ausgeben soll, die innerhalb der jeweils letzten halben Stunde erstellt
> worden sind.
>
> Habe da allerdings auf eine Denkblockade:
>
> Gebraucht wird ja das aktuelle Datum mit Uhrzeit.
> Davon muss man nun 30 minuten abziehen.
>
> Dieser Neue Wert wird dann in das Query gekippt.
>
> Und genau bei den "letzten 30 Minuten" hänge ich fest. :-(
>
> Gibt es die Möglichkeit es über SQL zu lösen oder sollte ich vorher das
> datetime mittels PHP zurückrechnen und dann in die Query einkippen?
>
> Hier mein Ansatz (mittels php?:
>
> <?php
>
> $current_datetime = date('Y-m-d H:i:s');
> $search_datetime = '' // HIER KOMME ICH NICHT WEITER
>
> $query = 'SELECT * FROM test_table WHERE id = 1 AND firstdate <=
> "'.$_search_datetime.'"';
>
> ?>
>
> Danke für Tipps...
>
> Netten Gruß
> Ben
>
>
Sven [ Mi, 19 Dezember 2007 15:34 ] [ ID #1890751 ]
PHP » de.comp.lang.php.misc » SQL datetime <= letzten 30 Minuten

Vorheriges Thema: Serialized Cookie Problem
Nächstes Thema: Re: AN bestimmte Stelle Komma