sql >> Database teknologi >  >> RDS >> Mysql

Forespørgsel om den aktuelle dato i tiden mysql

Dit udtryk ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate())) returnerer kun dato en del af sidste ugedag, så alle data efter start denne dag er ikke inkluderet.

Du har et par muligheder for at løse dette:

  1. Runde oprettet til dato uden 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. Brug stærk mindre tilstand med næste 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. Sådan vælger du rækkevidde baseret på feltværdier - MySQL

  2. Mysql-grænse med in statement

  3. Problem med at bygge cx_Oracle - libclntsh.so.11.1 => ikke fundet

  4. JDBC returnerer MySQLSyntaxError Exception med korrekt sætning