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

Zapytanie o aktualną datę w czasie mysql

Twoje wyrażenie ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate())) zwraca tylko część daty z ostatniego dnia tygodnia, więc wszystkie dane po rozpoczęciu tego dnia nie są uwzględniane.

Masz kilka możliwości rozwiązania tego problemu:

  1. Runda utworzonaNa dzień dzisiejszy bez części czasowej:
SELECT *
FROM your_table
WHERE DATE(createdAt) BETWEEN 
    SUBDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), WEEKDAY(curdate())) AND
    ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate()));
  1. Użyj silnej, mniejszej kondycji następnego dnia:
SELECT *
FROM your_table
WHERE 
    createdAt >= SUBDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), WEEKDAY(curdate())) AND
    createdAt < ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 7-WEEKDAY(curdate()));



  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ć skrypt do tworzenia tabel w MySQL Workbench?

  2. Jak obsłużyć zbyt wiele jednoczesnych połączeń nawet po wykorzystaniu puli połączeń?

  3. Jakie są praktyczne różnice między poleceniami „ZAMIEŃ” i „WSTAW… NA ZDUPLIKOWANY KLUCZ UPDATE” w MySQL?

  4. Zmiana folderu tmp mysql

  5. Uruchamianie autouzupełniania jQuery do pracy ze źródłem PHP