Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Abfrage des aktuellen Datums in der Uhrzeit mysql

Ihr Ausdruck ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate())) gibt nur einen Datumsteil des letzten Wochentages zurück, daher sind alle Daten nach dem Start dieses Tages nicht enthalten.

Sie haben mehrere Möglichkeiten, dies zu lösen:

  1. Runde erstellt bis heute ohne Zeitteil:
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. Am nächsten Tag stark weniger Kondition verwenden:
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()));