Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

PHP Select from MySQL onde o campo de data é 7 dias no futuro


Você provavelmente definiu expiry_date como um valor de data e hora, o que significa que suas comparações estão incorretas. por exemplo. você precisa usar
SELECT ... WHERE date(expiry_date) = date(now() + interval 7 day)

em vez disso (observe a quebra do dia +7 em um date() Operação.

por exemplo.

Dada uma tabela com um campo de data e hora:
+------------+---------------------+
| d          | dt                  |
+------------+---------------------+
| 2013-06-28 | 2013-06-28 08:23:03 |
+------------+---------------------+

Observe como fica a comparação:
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)

data vs. datetime =false
date vs. date =true
datetime vs.s. datetime =false (hh:mm:ss não corresponde, então não é igual)
datetime vs.s. data =false (a data é expandida para aaaa-mm-hh 00:00:00 e o hh:mm:ss não corresponde