În MySQL, puteți utiliza funcția DATE_SUB()
pentru a scădea o anumită perioadă de timp dintr-o dată. De exemplu, o puteți utiliza pentru a scădea 7 zile dintr-o anumită dată. Puteți specifica dacă doriți să scădeți zile, săptămâni, luni, trimestre, ani etc. Puteți, de asemenea, să scădeți o valoare de timp, cum ar fi secunde, microsecunde etc.
Această funcție este similară cu DATE_ADD()
, cu excepția faptului că scade dintr-o dată în loc să adauge la ea.
Sintaxa
Sintaxa este următoarea:
DATE_SUB(date,INTERVAL expr unit)
Exemplu 1 – Utilizare de bază
Iată un exemplu de utilizare.
SELECT DATE_SUB('2021-05-07', INTERVAL 5 DAY) AS Result;
Rezultat:
+------------+| Result |+------------+| 2021-05-02 |+------------+
Acest exemplu scade 5 zile din data furnizată de primul argument.
Exemplu 2 – Alte unități de dată
Puteți specifica unitățile de măsură în zile, săptămâni, luni, ani, etc. Iată câteva exemple.
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';
Rezultat:
+------------+------------+------------+-------------+------------+| 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 |+------------+------------+------------+-------------+------------+
Exemplu 3 – Unități de timp
De asemenea, puteți scădea unitățile de timp dintr-o valoare de dată/ora. Iată un exemplu.
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL 5 HOUR) AS Result;
Rezultat:
+---------------------+| Result |+---------------------+| 2021-05-07 05:00:00 |+---------------------+
Și puteți specifica mai multe unități în același timp. De exemplu, puteți specifica ore și minute. Astfel:
SELECT DATE_SUB('2021-05-07 10:00:00', INTERVAL '1:30' HOUR_MINUTE) AS Result;
Rezultat:
+---------------------+| Result |+---------------------+| 2021-05-07 08:30:00 |+---------------------+
Valori așteptate
Tabelul următor prezintă valorile unităților valide și formatul lor așteptat.
unit Valoare |
Așteptată expr Format |
|
---|---|---|
MICROSECUNDE | MICROSECUNDE | |
SECUNDĂ | SECUNDE | |
MINUT | MINUT | |
ORĂ | ORE | ORE |
ZI | ZILE | |
SĂPTĂMÂNĂ | SĂPTĂMÂNI | |
LUNĂ | LUNI | |
TRIMESTRU | TRIMESTRE | |
AN | ANI | |
SECUNDĂ_MICROSECUNDĂ | ‘SECUNDE.MICROSECUNDE’ | |
MINUTE_MICROSECUNDE | ‘MINUTE:SECUNDE.MICROSECUNDE’ | |
MINUTE_SECUNDE | ‘MINUTE:SECUNDE’ | |
HOUR_MICROSECUNDE | ‘ORE:MINUTE:SECUNDE.MICROSECUNDE’ | |
ORA_SECUNDĂ | ‘ORE:MINUTE:SECUNDE’ | |
ORA_MINUT | ‘ORE:MINUTE’ | |
ZI_MICROSECUNDĂ | ‘ZILE ORE:MINUTE:SECUNDE.MICROSECUNDE’ | |
DAY_SECOND | ‘DAYS HOURS:MINUTES:SECONDS’ | |
DAY_MINUTE | ‘DAYS HOURS:MINUTE’ | |
DAY_HOUR | ‘DAYS HOURS’ | |
YEAR_MONTH | ‘YEARS-‘.MONTHS’ |
Puteți utiliza, de asemenea, funcția SUBDATE()
pentru a face același lucru (este un sinonim pentru funcția DATE_SUB()
atunci când se utilizează aceeași sintaxă).
În plus, sintaxa lui SUBDATE()
are o a doua formă, care este o metodă prescurtată de a scădea un anumit număr de zile dintr-o dată. Pentru mai multe informații, consultați Exemple de SUBDATE() în MySQL.
.