Je hebt waarschijnlijk expiry_date
gedefinieerd als een datetime-waarde, wat betekent dat uw vergelijkingen onjuist zijn. bijv. je moet gebruiken
SELECT ... WHERE date(expiry_date) = date(now() + interval 7 day)
in plaats daarvan (let op de verpakking van de +7 dag in een date()
bediening.
bijv.
Gegeven een tabel met een datum- en een datetime-veld:
+------------+---------------------+
| d | dt |
+------------+---------------------+
| 2013-06-28 | 2013-06-28 08:23:03 |
+------------+---------------------+
Merk op hoe de vergelijking eruit komt te zien:
mysql> select d=now(), d=date(now()), dt=now(), dt=date(now()), now() from x;
+---------+---------------+----------+----------------+---------------------+
| d=now() | d=date(now()) | dt=now() | dt=date(now()) | now() |
+---------+---------------+----------+----------------+---------------------+
| 0 | 1 | 0 | 0 | 2013-06-28 08:26:20 |
+---------+---------------+----------+----------------+---------------------+
1 row in set (0.00 sec)
datum vs. datetime =false
datum vs datum =true
datetime vs. datetime =false (uu:mm:ss komt niet overeen, dus niet gelijk)
datetime vs. date =false (datum is uitgebreid tot jjjj-mm-uu 00:00:00 en de uu:mm:ss komen niet overeen