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

SUBDATE() Esempi – MySQL

In MySQL, puoi usare SUBDATE() funzione per sottrarre una determinata quantità di tempo da una data. Ad esempio, puoi usarlo per sottrarre 10 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.

Quando si utilizza la prima sintassi elencata di seguito, SUBDATE() function è sinonimo di DATE_SUB() funzione (simile a come ADDDATE() è sinonimo di DATE_ADD() quando si utilizza la stessa sintassi).

Sintassi

Puoi utilizzare questa funzione nei due modi seguenti:

SUBDATE(date,INTERVAL expr unit)

Oppure

SUBDATE(expr,days)

Esempio 1:la prima sintassi

Ecco un esempio di utilizzo della prima forma della sintassi.

SELECT SUBDATE('2018-05-10', INTERVAL 2 DAY) AS Result;

Risultato:

+------------+
| Result     |
+------------+
| 2018-05-08 |
+------------+

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

Esempio 2 – La seconda sintassi

Questo esempio potrebbe essere riscritto come segue:

SELECT SUBDATE('2018-05-10', 2) AS Result;

Risultato:

+------------+
| Result     |
+------------+
| 2018-05-08 |
+------------+

Questo utilizza la seconda forma della sintassi. Il secondo argomento è un numero intero che rappresenta quanti giorni devono essere sottratti dalla data fornita dal primo argomento.

Come accennato, SUBDATE() è sinonimo di DATE_SUB() , ma solo quando viene utilizzata la prima sintassi. La seconda sintassi è disponibile solo in SUBDATE() .

Esempio 3 – Altre unità di data

Un vantaggio della prima forma della sintassi è che puoi specificare se sottrarre giorni, settimane, mesi, anni, ecc. Ecco alcuni esempi.

SELECT 
    '2018-05-10' AS 'Start Date',
    SUBDATE('2018-05-10', INTERVAL 2 WEEK) AS '-2 Weeks',
    SUBDATE('2018-05-10', INTERVAL 2 MONTH) AS '-2 Months',
    SUBDATE('2018-05-10', INTERVAL 2 QUARTER) AS '-2 Quarters',
    SUBDATE('2018-05-10', INTERVAL 2 YEAR) AS '-2 Years';

Risultato:

+------------+------------+------------+-------------+------------+
| Start Date | -2 Weeks   | -2 Months  | -2 Quarters | -2 Years   |
+------------+------------+------------+-------------+------------+
| 2018-05-10 | 2018-04-26 | 2018-03-10 | 2017-11-10  | 2016-05-10 |
+------------+------------+------------+-------------+------------+

Esempio 4 – Unità di tempo

Puoi anche usare SUBDATE() per sottrarre le unità di tempo da un valore di data/ora. Ecco un esempio.

SELECT SUBDATE('2018-05-10 01:00:00', INTERVAL 2 HOUR) AS Result;

Risultato:

+---------------------+
| Result              |
+---------------------+
| 2018-05-09 23:00: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'