MariaDB
 sql >> Database >  >> RDS >> MariaDB

Come funziona TIMESTAMPADD() in MariaDB

In MariaDB, TIMESTAMPADD() è una funzione di data e ora incorporata che aggiunge un intervallo di espressioni intere a una data espressione o data e ora.

Sintassi

La sintassi è questa:

TIMESTAMPADD(unit,interval,datetime_expr)

Dove unit è uno dei seguenti valori:

  • MICROSECOND
  • SECOND
  • MINUTE
  • HOUR
  • DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

Le unità possono opzionalmente avere un prefisso SQL_TSI_ .

Esempio

Ecco un esempio da dimostrare:

SELECT TIMESTAMPADD(DAY, 10, '2030-02-01');

Risultato:

+-------------------------------------+
| TIMESTAMPADD(DAY, 10, '2030-02-01') |
+-------------------------------------+
| 2030-02-11                          |
+-------------------------------------+

Valori di data e ora

Ecco un esempio di passaggio di un valore datetime:

SELECT TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45');

Risultato:

+-----------------------------------------------+
| TIMESTAMPADD(HOUR, 10, '2030-02-01 10:30:45') |
+-----------------------------------------------+
| 2030-02-01 20:30:45                           |
+-----------------------------------------------+

Aggiunta di un SQL_TSI_ Prefisso

L'unità può includere un SQL_TSI_ prefisso se richiesto:

SELECT TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01');

Risultato:

+----------------------------------------------+
| TIMESTAMPADD(SQL_TSI_YEAR, 10, '2030-02-01') |
+----------------------------------------------+
| 2040-02-01                                   |
+----------------------------------------------+

Microsecondi

Ecco un esempio che aggiunge microsecondi:

SELECT TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45');

Risultato:

+----------------------------------------------------------+
| TIMESTAMPADD(MICROSECOND, 123456, '2030-02-01 10:30:45') |
+----------------------------------------------------------+
| 2030-02-01 10:30:45.123456                               |
+----------------------------------------------------------+

Intervalli negativi

Gli intervalli negativi sono validi:

Esempio:

SELECT TIMESTAMPADD(YEAR, -10, '2030-02-01');

Risultato:

+---------------------------------------+
| TIMESTAMPADD(YEAR, -10, '2030-02-01') |
+---------------------------------------+
| 2020-02-01                            |
+---------------------------------------+

Data attuale

Possiamo passare NOW() come argomento datetime per utilizzare la data e l'ora correnti:

SELECT 
    NOW(),
    TIMESTAMPADD(DAY, 10, NOW());

Risultato:

+---------------------+------------------------------+
| NOW()               | TIMESTAMPADD(DAY, 10, NOW()) |
+---------------------+------------------------------+
| 2021-05-28 09:58:56 | 2021-06-07 09:58:56          |
+---------------------+------------------------------+

Argomento mancante

Chiamando TIMESTAMPADD() con il numero errato di argomenti, o senza passare alcun argomento, si verifica un errore:

SELECT TIMESTAMPADD();

Risultato:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

E un altro esempio:

SELECT TIMESTAMPADD(10, '2020-12-09');

Risultato:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '10, '2020-12-09')' at line 1