MYSQL WHERE DATUM >= date_sub(now(), interval 5 DAY) will nicht
Zentralregierung
- datenbank
0 Vinzenz Mai0 Bobby1 Vinzenz Mai
Hallo,
sehe ich das richtig das bei der Angabe:
WHERE DATUM >= date_sub(now(), interval 5 DAY)
alle Daten angezigt werden sollen die heute + 5 Tage sind?
Danke
Hallo,
sehe ich das richtig das bei der Angabe:
WHERE DATUM >= date_sub(now(), interval 5 DAY)
alle Daten angezigt werden sollen die heute + 5 Tage sind?
wenn ich Dich richtig verstehe, dann siehst Du das nicht richtig.
Diese WHERE-Klausel beschränkt die Ergebnismenge auf die Datensätze, deren Werte in der Datumsspalte *nicht* älter als fünf Tage alt sind.
|<---- 5 Tage ---->|
---------------------------------------> Zeit
^ ^
| |
| NOW()
DATE_SUB(NOW(), INTERVAL 5 DAY)
|----------------------->
ab hier wird angezeigt
Freundliche Grüße
Vinzenz
yo Vinz,
Diese WHERE-Klausel beschränkt die Ergebnismenge auf die Datensätze, deren Werte in der Datumsspalte *nicht* älter als fünf Tage alt sind.
ich bin aus der mysql doku nicht ganz schlau geworden, ob DATE_SUB sich nicht genauso verhält wie DATE_ADD, bzw. ob die richtung der zeitachse nicht alleine durch das vorzeichen gesteuert wird. leider habe ich hier auch kein mysql, um es selbst auszuprobieren. aber meine vermutung ist, dass:
date_sub(now(), interval 5 DAY) = date_add(now(), interval 5 DAY)
gilt.
Ilja
echo $begrüßung;
ich bin aus der mysql doku nicht ganz schlau geworden, ob DATE_SUB sich nicht genauso verhält wie DATE_ADD, bzw. ob die richtung der zeitachse nicht alleine durch das vorzeichen gesteuert wird. leider habe ich hier auch kein mysql, um es selbst auszuprobieren. aber meine vermutung ist, dass:
date_sub(now(), interval 5 DAY) = date_add(now(), interval 5 DAY)
Es gibt in der Beschreibung zu DATE_ADD()/DATE_SUB() Beispiele, die zeigen, dass DATE_SUB() ein DATE_ADD() mit umgekehrtem Vorzeichen ist.
Deutlicher (und meiner Meinung nach einfacher) wird die Syntax, wenn man statt DATE_ADD() und DATE_SUB() die ebenfalls dort angegebene Syntax
date + INTERVAL expr unit
date - INTERVAL expr unit
nimmt.
echo "$verabschiedung $name";
yo,
Deutlicher (und meiner Meinung nach einfacher) wird die Syntax, wenn man statt DATE_ADD() und DATE_SUB() die ebenfalls dort angegebene Syntax
date + INTERVAL expr unit
date - INTERVAL expr unitnimmt.
das oder einfach nur DATE_ADD(), irgendwie ist das mit DATE_SUB() doppelt gemoppelt, wenn auch mit anderen vorzeichen.
Ilja
Moin
Du brauchst etwas a`la
WHERE TO_DAYS(DATUM) <= (TO_DAYS(CURRENT_DATE)+5) AND TO_DAYS(DATUM) >= TO_DAY(NOW())
TO_DAY wandelt ein Datum in die Tagesanzahl um.
Gruß Bobby
Hallo,
sehe ich das richtig das bei der Angabe:
WHERE DATUM >= date_sub(now(), interval 5 DAY)
alle Daten angezigt werden sollen die heute + 5 Tage sind?
wenn Du die Daten haben möchtest, die in die nächsten 5 Tage fallen, dann sieht dies auf der Zeitachse wie folgt aus:
NOW() NOW() + INTERVAL 5 DAY (siehe [dedlfix])
| |
|<------------ 5 Tage ------------>|
---------------------------------------> Zeit
^ ^
| |
| |
|<-------------------------------->|
nur *zwischen* diesen Zeitpunkten
liegende Daten interessieren
führt zu folgender WHERE-Klausel:
WHERE datum [link:http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between@title=BETWEEN] NOW() AND (NOW() + INTERVAL 5 DAY)
Freundliche Grüße
Vinzenz