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

DATE_SUB() Esempi – MySQL

In MySQL, puoi usare DATE_SUB() funzione per sottrarre una determinata quantità di tempo da una data. Ad esempio, puoi usarlo per sottrarre 7 giorni da una determinata data. Puoi specificare se sottrarre giorni, settimane, mesi, trimestri, anni, ecc. Puoi anche sottrarre un valore temporale, come secondi, microsecondi, ecc.

Questa funzione è simile a DATE_ADD() , tranne per il fatto che sottrae da una data invece di aggiungerla.

Sintassi

La sintassi è questa:

DATE_SUB(date,INTERVAL expr unit)

Esempio 1 – Utilizzo di base

Ecco un esempio di utilizzo.

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

Risultato:

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

Questo esempio sottrae 5 giorni dalla data fornita dal primo argomento.

Esempio 2 – Altre unità di data

Puoi specificare le unità in giorni, settimane, mesi, anni, ecc. Ecco alcuni esempi.

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';

Risultato:

+------------+------------+------------+-------------+------------+
| 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 |
+------------+------------+------------+-------------+------------+

Esempio 3 – Unità di tempo

Puoi anche sottrarre unità di tempo da un valore di data/ora. Ecco un esempio.

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

Risultato:

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

E puoi specificare più unità contemporaneamente. Ad esempio, puoi specificare ore e minuti. Così.

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

Risultato:

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

Valori previsti

La tabella seguente mostra i valori unitari validi e il loro formato previsto.

unit Valore Previsto expr Formato
MICROSECONDO MICROSECONDI
SECONDA SECONDI
MINUTO MINUTI
ORA ORE
GIORNO GIORNI
SETTIMANA SETTIMANE
MESE MESI
TRIMESTRE TRIMESTRE
ANNO ANNI
SECOND_MICROSECONDO 'SECONDI.MICROSECONDI'
MINUTE_MICROSECOND 'MINUTI:SECONDI.MICROSECONDI'
MINUTE_SECOND 'MINUTI:SECONDI'
ORA_MICROSECOND 'ORE:MINUTI:SECONDI.MICROSECONDI'
ORA_SECONDA 'ORE:MINUTI:SECONDI'
ORA_MINUTO 'ORE:MINUTI'
DAY_MICROSECONDO 'GIORNI ORE:MINUTI:SECONDI.MICROSECONDI'
DAY_SECOND 'GIORNI ORE:MINUTI:SECONDI'
DAY_MINUTE 'GIORNI ORE:MINUTI'
DAY_HOUR 'ORE DEI GIORNI'
ANNO_MESE 'ANNI-MESI'

Puoi anche utilizzare il SUBDATE() funzione per fare la stessa cosa (è un sinonimo di DATE_SUB() funzione quando si utilizza la stessa sintassi).

Inoltre, la sintassi di SUBDATE() ha una seconda forma, che è un metodo abbreviato per sottrarre un certo numero di giorni da una data. Per ulteriori informazioni, vedere Esempi di SUBDATE() in MySQL.