Mysql
 sql >> Baza danych >  >> RDS >> Mysql

PDO PHP - Znajdź wszystkie wiersze między 2 datami - pokazuje puste

DATE_FORMAT() zwraca ciąg, a nie datę. Przekazywanie 3 argumentów ciągu do BETWEEN ... kto wie, co to wróci.

Aby cofnąć przypisanie kodu, użyj:

$week_start = date('Y-m-d',time()+( 1 - date('w'))*24*3600);  
$week_end =  date('Y-m-d',time()+( 7 - date('w'))*24*3600); 

aby sformatować daty zgodnie z oczekiwaniami mySQL i:

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

w zapytaniu.

Lub jeśli wolisz podejście zorientowane obiektowo, zrób coś takiego:

$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);

Następnie w zapytaniu wykonaj:

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

Następnie we wszystkim innym możesz powtórzyć format, jak chcesz:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MOD_REWRITE POMOC!

  2. Cx-Freeze :Showwarning AttributeError:Obiekt „NoneType” nie ma atrybutu „write”

  3. Adnotacja formuły hibernacji - funkcje MySql:INTERWAŁ, DZIEŃ

  4. Jak wyświetlić całkowitą liczbę ostatniego wiersza według stanu plików?

  5. Jak używać wyrażenia regularnego w MySQL?