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

Zapytanie MySQL roktydzień bieżącego tygodnia zaczyna się w czwartek, kończy w środę

Możesz skorzystać z WEEKDAY() która zwraca liczbę reprezentującą dzień tygodnia (0 =poniedziałek, 6 =niedziela) i kilka prostych obliczeń matematycznych do przepisania tego zapytania.

Odejmij dzień tygodnia, w którym chcesz rozpocząć tydzień (w twoim przypadku 4 =czwartek) od wybranej daty, dodaj 7 i weź resztę z 7. To da ci liczbę dni do odjęcia, aby uzyskać początek zakresu.

Podobna logika dotyczy obliczania daty zakończenia zakresu.

SELECT * 
FROM transactions 
WHERE DATE(transactionDate)
    BETWEEN DATE_SUB(DATE(NOW()), INTERVAL (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
        AND DATE_ADD(DATE(NOW()), INTERVAL 6 - (WEEKDAY(NOW()) - 4 + 7) % 7 DAY)
ORDER BY transactionDate DESC;

Aby uzyskać inną datę początkową, zamień dzień tygodnia na 4 w zapytaniu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zdobyć mądre kategorie wartości związanych z użytkownikiem?

  2. Jaka jest najlepsza strategia ucieczki dla kombinacji Python/MySQL?

  3. Czy mysqldump obsługuje pasek postępu?

  4. Jak utworzyć zapytanie w MySQL, aby odejmować kolejne wiersze na podstawie daty i wyróżniającego pola?

  5. Jakie ustawienia mysql wpływają na szybkość LOAD DATA INFILE?