Dans MariaDB, TIMESTAMP()
est une fonction de date et d'heure intégrée qui renvoie une valeur datetime, basée sur son/ses argument(s).
Il peut être utilisé avec un ou deux arguments, comme suit :
- Lorsqu'il est utilisé avec un argument, il renvoie cette expression date ou datetime sous forme de valeur datetime.
- Lorsqu'il est utilisé avec deux arguments, il ajoute le deuxième argument (heure) à la première expression (date ou datetime), puis renvoie la valeur datetime résultante.
Syntaxe
Il peut être utilisé des deux manières suivantes :
TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)
Où expr1
est une expression date ou datetime, et expr2
est une expression temporelle à ajouter à expr1
.
Exemple
Voici un exemple pour illustrer :
SELECT TIMESTAMP('2030-02-01');
Résultat :
+-------------------------+ | TIMESTAMP('2030-02-01') | +-------------------------+ | 2030-02-01 00:00:00 | +-------------------------+
Valeurs DateHeure
Voici un exemple de transmission d'une valeur datetime :
SELECT TIMESTAMP('2030-02-01 10:30:45');
Résultat :
+----------------------------------+ | TIMESTAMP('2030-02-01 10:30:45') | +----------------------------------+ | 2030-02-01 10:30:45 | +----------------------------------+
Deuxième argument
Voici un exemple qui ajoute le deuxième argument au premier :
SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15');
Résultat :
+----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '02:15:15') | +----------------------------------------------+ | 2030-02-01 12:46:00 | +----------------------------------------------+
Microsecondes
Voici un exemple qui ajoute des microsecondes :
SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456');
Résultat :
+-----------------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') | +-----------------------------------------------------+ | 2030-02-01 10:30:45.123456 | +-----------------------------------------------------+
Temps négatifs
Les heures négatives sont valides :
Exemple :
SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00');
Résultat :
+-----------------------------------------------+ | TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') | +-----------------------------------------------+ | 2030-02-01 01:10:45 | +-----------------------------------------------+
Date actuelle
Nous pouvons passer NOW()
comme argument datetime pour utiliser la date et l'heure actuelles :
SELECT
NOW(),
TIMESTAMP(NOW(), '10:30:45');
Résultat :
+---------------------+------------------------------+ | NOW() | TIMESTAMP(NOW(), '10:30:45') | +---------------------+------------------------------+ | 2021-05-28 09:25:09 | 2021-05-28 19:55:54 | +---------------------+------------------------------+
Arguments invalides
Lorsqu'un argument invalide est passé, TIMESTAMP()
renvoie null
avec un avertissement :
SELECT TIMESTAMP('Ten Thirty AM');
Résultat :
+----------------------------+ | TIMESTAMP('Ten Thirty AM') | +----------------------------+ | NULL | +----------------------------+ 1 row in set, 1 warning (0.004 sec)
Vérifiez l'avertissement :
SHOW WARNINGS;
Résultat :
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argument manquant
Appel de TIMESTAMP()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT TIMESTAMP();
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 TIMESTAMP('2020-12-09', '06:30:45', '06:30:45');
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 ' '06:30:45')' at line 1