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

PDO PHP - Find alle rækker mellem 2 datoer - viser blankt

DATE_FORMAT() returnerer en streng, ikke en dato. Sender 3 strengargumenter til BETWEEN ... hvem ved, hvad det vil returnere.

Brug:

for at fjerne din kode baglæns
$week_start = date('Y-m-d',time()+( 1 - date('w'))*24*3600);  
$week_end =  date('Y-m-d',time()+( 7 - date('w'))*24*3600); 

at formatere dine datoer på den måde, mySQL forventer, og:

WHERE 
  start_date BETWEEN '".$week_start."' AND '".$week_end."'

i forespørgslen.

Eller hvis du foretrækker en objektorienteret tilgang, så gør noget som dette:

$week_start = new DateTime; 
$week_end = new DateTime;
$week_start->setTimestamp(time()+( 1 - date('w'))*24*3600)); 
$week_end->setTimestamp(time()+( 7 - date('w'))*24*3600);

I din forespørgsel skal du gøre følgende:

WHERE 
  start_date 
      BETWEEN '".$week_start->format('Y-m-d')."'
      AND '".$week_end->format('Y-m-d')."'

Så for alt andet kan du ekko formatet, som du ønsker:

echo $date->format('d-m-Y'); // etc



  1. MySQLdb og Python ImportError

  2. Returner en grupperet liste med forekomster ved hjælp af Rails og PostgreSQL

  3. Hvad er din mening om at bruge tekstlige identifikatorer i tabelkolonner, når du nærmer dig databasen med normalisering og skalerbarhed i tankerne?

  4. MySQL:tæller grupperede elementer?