sql >> Database >  >> RDS >> Mysql

DATE_SUB() Voorbeelden – MySQL

In MySQL kunt u de DATE_SUB() . gebruiken functie om een ​​bepaalde hoeveelheid tijd van een datum af te trekken. U kunt het bijvoorbeeld gebruiken om 7 dagen van een bepaalde datum af te trekken. U kunt aangeven of u dagen, weken, maanden, kwartalen, jaren, enz. wilt aftrekken. U kunt ook een tijdswaarde aftrekken, zoals seconden, microseconden, enz.

Deze functie is vergelijkbaar met DATE_ADD() , behalve dat het aftrekt van een datum in plaats van eraan toe te voegen.

Syntaxis

De syntaxis gaat als volgt:

DATE_SUB(date,INTERVAL expr unit)

Voorbeeld 1 – Basisgebruik

Hier is een gebruiksvoorbeeld.

SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;

Resultaat:

+------------+
| Result     |
+------------+
| 2021-05-02 |
+------------+

Dit voorbeeld trekt 5 dagen af ​​van de datum die door het eerste argument is opgegeven.

Voorbeeld 2 – Andere datumeenheden

U kunt de eenheden specificeren in dagen, weken, maanden, jaren, enz. Hier zijn enkele voorbeelden.

SELECT 
    '2021-05-07' AS 'Start Date',
    DATE_SUB('2021-05-07', INTERVAL 2 WEEK) AS '-2 Weeks',
    DATE_SUB('2021-05-07', INTERVAL 2 MONTH) AS '-2 Months',
    DATE_SUB('2021-05-07', INTERVAL 2 QUARTER) AS '-2 Quarters',
    DATE_SUB('2021-05-07', INTERVAL 2 YEAR) AS '-2 Years';

Resultaat:

+------------+------------+------------+-------------+------------+
| Start Date | -2 Weeks   | -2 Months  | -2 Quarters | -2 Years   |
+------------+------------+------------+-------------+------------+
| 2021-05-07 | 2021-04-23 | 2021-03-07 | 2020-11-07  | 2019-05-07 |
+------------+------------+------------+-------------+------------+

Voorbeeld 3 – Tijdseenheden

U kunt ook tijdseenheden aftrekken van een datum/tijd-waarde. Hier is een voorbeeld.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;

Resultaat:

+---------------------+
| Result              |
+---------------------+
| 2021-05-07 05:00:00 |
+---------------------+

En u kunt meerdere eenheden tegelijk specificeren. U kunt bijvoorbeeld uren en minuten opgeven. Vind dit leuk.

SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;

Resultaat:

+---------------------+
| Result              |
+---------------------+
| 2021-05-07 08:30:00 |
+---------------------+

Verwachte waarden

De volgende tabel toont de geldige eenheidswaarden en hun verwachte formaat.

unit Waarde Verwachte expr Formaat
MICROSECONDE MICROSECONDEN
TWEEDE SECONDEN
MINUUT MINUTEN
UUR UUR
DAG DAGEN
WEEK WEKEN
MAAND MAANDEN
KWARTAAL KWARTAAL
JAAR JAAR
SECOND_MICROSECOND ‘SECONDEN.MICROSECONDEN’
MINUTE_MICROSECOND ‘MINUTEN:SECONDEN.MICROSECONDEN’
MINUTE_SECOND ‘MINUTEN:SECONDEN’
HOUR_MICROSECOND ‘UUR:MINUTEN:SECONDEN.MICROSECONDEN’
HOUR_SECOND ‘UUR:MINUTEN:SECONDEN’
HOUR_MINUTE ‘UUR:MINUTEN’
DAY_MICROSECOND ‘DAGEN UUR:MINUTEN:SECONDEN.MICROSECONDEN’
DAY_SECOND ‘DAGEN UUR:MINUTEN:SECONDEN’
DAY_MINUTE ‘DAGEN UUR:MINUTEN’
DAY_HOUR ‘DAGEN UUR’
JAAR_MAAND ‘JAAR-MAANDEN’

U kunt ook de SUBDATE() . gebruiken functie om hetzelfde te doen (het is een synoniem voor de DATE_SUB() functie bij gebruik van dezelfde syntaxis).

Bovendien is de syntaxis van SUBDATE() heeft een tweede vorm, een stenomethode om een ​​bepaald aantal dagen van een datum af te trekken. Zie SUBDATE()-voorbeelden in MySQL voor meer informatie.


  1. SQL Server IF versus IIF():wat is het verschil?

  2. MySQL's HEX() en UNHEX() equivalent in Postgres?

  3. SQLite-opdrachten

  4. Hoe de RTRIM()-functie werkt in MySQL