sql >> Databasteknik >  >> RDS >> Mysql

Fråga om aktuellt datum i tid mysql

Ditt uttryck ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate())) returnerar endast datum del av förra veckodagen, så all data efter start denna dag ingår inte.

Du har ett par alternativ för att lösa detta:

  1. Runda skapad Hittills utan tidsdel:
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. Använd starkt mindre kondition nästa dag:
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. Kör mysql-kommandot före testskriptet på GitLab CI

  2. PHP MySQL liten fråga timeout, måste sätta gränsen till 10

  3. Varför är django ORM så mycket långsammare än rå SQL

  4. Hur man listar de föråldrade funktionerna i en SQL Server-instans med T-SQL