sql >> Database teknologi >  >> RDS >> Mysql

PHP Vælg fra MySQL, hvor datofeltet er 7 dage ude i fremtiden

Du har sikkert defineret udløbsdato som en datetime-værdi, hvilket betyder, at dine sammenligninger er forkerte. for eksempel. du skal bruge

VÆLG ... WHERE date(udløbsdato) =dato(nu() + interval 7 dage) 

i stedet (bemærk indpakningen af ​​+7 dagen i en date() operation.

f.eks.

Givet en tabel med en dato og et datetime felt:

+-------------+---------------------+| d | dt |+------------+---------------------+| 28-06-2013 | 2013-06-28 08:23:03 |+----------------+--------------------------+

Læg mærke til, hvordan sammenligningen kommer ud:

mysql> vælg d=nu(), d=dato(nu()), dt=nu(), dt=dato(nu()), nu() fra x;+---- -----+----------------+----------+----------------+ ----------------------+| d=nu() | d=dato(nu()) | dt=nu() | dt=dato(nu()) | nu() |+--------+--------------+--------+-------- -----------------------------------+| 0 | 1 | 0 | 0 | 2013-06-28 08:26:20 |+--------------+-----+- ---------------+----------------------------+1 række i sæt (0,00 sek.) 

dato v.s. datetime =falsk
dato v.s. dato =sand
datetime v.s. datetime =false (tt:mm:ss stemmer ikke overens, så ikke ens)
datetime v.s. dato =falsk (dato er udvidet til åååå-mm-tt 00:00:00 og tt:mm:ss stemmer ikke overens



  1. SqlException (0x80131904):Ugyldigt objektnavn 'dbo.Categories'

  2. Hvordan udfører jeg en indsættelse og returnerer indsat identitet med Dapper?

  3. Konfiguration af databasemailmeddelelser i MS SQL Server

  4. 5 almindelige fejl at undgå, når du de-duperer dine data