Database.Guide

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

Questa funzione è simile a DATE_ADD(), eccetto che sottrae da una data invece di aggiungere ad essa.

Sintassi

La sintassi è la seguente:

DATE_SUB(date,INTERVAL expr unit)

Esempio 1 – Uso di base

Ecco un esempio di uso.

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

È possibile 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à allo stesso tempo. Per esempio, potete specificare ore e minuti. In questo modo.

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 seguente tabella mostra i valori di unità validi e il loro formato previsto.

unit Valore Espettato expr Formato
MICROSECONDO MICROSECONDS
SECONDO SECONDI
MINUTO MINUTI
ORA ORE
GIORNO GIORNI
SETTIMANA SETTIMANE
MESE MESI
TRIMESTRE QUARTIERE
ANNO ANNI
SECONDO_MICROSECONDO ‘SECONDI.MICROSECONDI’
MINUTO_MICROSECONDO ‘MINUTI:SECONDI.MICROSECONDI’
MINUTO_SECONDO ‘MINUTI:SECONDI’
ORA_MICROSECONDO ‘ORE:MINUTI:SECONDI.MICROSECONDI’
ORA_SECONDO ‘ORE:MINUTI:SECONDI’
ORA_MINUTO ‘ORE:MINUTI’
GIORNO_MICROSECONDO ‘GIORNI ORE:MINUTI:SECONDI.MICROSECONDI’
GIORNO_SECONDO ‘GIORNI ORE:MINUTI:SECONDI’
GIORNO_MINUTO ‘GIORNI ORE:MINUTI’
GIORNO_ORA ‘GIORNI ORE’
ANNO_MESE ‘ANNI-MESI’

Puoi anche usare la funzione SUBDATE() per fare la stessa cosa (è un sinonimo della funzione DATE_SUB() quando usi la stessa sintassi).

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

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.