MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment fonctionne TIMESTAMPADD() dans MariaDB

Dans MariaDB, TIMESTAMPADD() est une fonction de date et d'heure intégrée qui ajoute un intervalle d'expression entière à une expression de date ou de date/heure donnée.

Syntaxe

La syntaxe ressemble à ceci :

TIMESTAMPADD(unit,interval,datetime_expr)

unit est l'une des valeurs suivantes :

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

Les unités peuvent éventuellement avoir un préfixe de SQL_TSI_ .

Exemple

Voici un exemple pour illustrer :

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

Résultat :

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

Valeurs DateHeure

Voici un exemple de transmission d'une valeur datetime :

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

Résultat :

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

Ajout d'un SQL_TSI_ Préfixe

L'unité peut inclure un SQL_TSI_ préfixe si nécessaire :

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

Résultat :

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

Microsecondes

Voici un exemple qui ajoute des microsecondes :

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

Résultat :

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

Intervalles négatifs

Les intervalles négatifs sont valides :

Exemple :

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

Résultat :

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

Date actuelle

Nous pouvons passer NOW() comme argument datetime pour utiliser la date et l'heure actuelles :

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

Résultat :

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

Argument manquant

Appel de TIMESTAMPADD() avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :

SELECT TIMESTAMPADD();

Résultat :

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

Et un autre exemple :

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

Résultat :

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