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

Zapisana procedura do wylistowania wszystkich tygodni między dwiema datami

Możesz wybrać wszystkie dni i filtrować w pierwszym dniu tygodnia (date_format(selected_date, '%w') = 0 ):

select selected_date, date_add(selected_date, INTERVAL 6 DAY)
from 
(select adddate('1970-01-01',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) selected_date 
 from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4) v
where selected_date between '2015-02-01' and '2015-02-28'
  AND date_format(selected_date, '%w') = 0

SQLFIDDLE:http://sqlfiddle.com/#!2/7bc0e/52

Możesz użyć

AND DAYOFWEEK(selected_date) = 1

zamiast

date_format(selected_date, '%w') = 0

Myślę, że jest trochę bardziej czytelny:http://sqlfiddle.com/#!2 /7bc0e/54




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL group_concat z klauzulą ​​where

  2. Jak utworzyć plik CSV z bazy danych w Pythonie?

  3. Czat PHP/MYSQL AJAX

  4. UPDATE Ten sam wiersz po aktualizacji w wyzwalaczu

  5. Mam dużo danych w Excelu i chcę je dodać do bazy danych MySQL, jak to zrobić?