sql >> Database >  >> RDS >> Mysql

Opvragen van huidige datum in tijd mysql

Uw uitdrukking ADDDATE(DATE_SUB(curdate(), INTERVAL 1 WEEK), 6-WEEKDAY(curdate())) retourneert alleen een datumgedeelte van de dag van de vorige week, dus alle gegevens na het begin van deze dag zijn niet inbegrepen.

Je hebt een aantal opties om dit op te lossen:

  1. Ronde gemaaktAt to date withot time part:
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. Gebruik de volgende dag een sterke minder conditie:
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. Inleiding tot failover voor MySQL-replicatie - de 101 Blog

  2. Voeg snel een kopie van een kolom toe aan een MySQL-tabel

  3. SQL SELECTEER MIN

  4. MySQL geeft alle datums tussen bereik weer