sql >> Database >  >> RDS >> Mysql

PHP Kies uit MySQL waarbij het datumveld 7 dagen in de toekomst ligt

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



  1. Ik heb mijn PHP-pagina nodig om mijn BLOB-afbeelding uit de mysql-database te tonen

  2. MICROSECONDE() Voorbeeld – MySQL

  3. Mysql meerdere rij insert-select statement met last_insert_id()

  4. PG::Fout:SELECT DISTINCT, ORDER BY-uitdrukkingen moeten in de selectielijst verschijnen