Dans MariaDB, TIME() est une fonction de date et d'heure intégrée qui extrait la partie heure d'une expression d'heure ou de date/heure donnée et la renvoie sous forme de chaîne.
Il accepte un argument, qui est la valeur d'heure ou de date/heure pour laquelle vous souhaitez extraire l'heure.
Syntaxe
La syntaxe ressemble à ceci :
TIME(expr)
Où expr est l'expression d'heure ou de date/heure pour laquelle extraire l'heure.
Exemple
Voici un exemple pour illustrer :
SELECT TIME('2030-02-01 10:30:45'); Résultat :
+-----------------------------+
| TIME('2030-02-01 10:30:45') |
+-----------------------------+
| 10:30:45 |
+-----------------------------+ Valeurs de temps
Voici un exemple qui extrait l'heure d'une valeur d'heure :
SELECT TIME('10:30:45'); Résultat :
+------------------+
| TIME('10:30:45') |
+------------------+
| 10:30:45 |
+------------------+ Microsecondes
Voici un exemple qui inclut les microsecondes :
SELECT TIME('2030-02-01 10:30:45.123456'); Résultat :
+------------------------------------+
| TIME('2030-02-01 10:30:45.123456') |
+------------------------------------+
| 10:30:45.123456 |
+------------------------------------+ Heures plus longues
TIME les valeurs peuvent être comprises dans la plage '-838:59:59.999999' à '838:59:59.999999' .
Par conséquent, la portion horaire peut être bien supérieure à 23 :
SELECT TIME('578:30:45'); Résultat :
+-------------------+
| TIME('578:30:45') |
+-------------------+
| 578:30:45 |
+-------------------+ Temps négatifs
Les heures négatives sont valides :
Exemple
SELECT TIME('-578:30:45'); Résultat :
+--------------------+
| TIME('-578:30:45') |
+--------------------+
| -578:30:45 |
+--------------------+ Heures hors plage
Valeurs de temps en dehors de la plage '-838:59:59.999999' à '838:59:59.999999' sont plafonnés à la limite pertinente et incluent un avertissement.
Exemple :
SELECT TIME('978:30:45'); Résultat (en utilisant la sortie verticale) :
+-------------------+
| TIME('978:30:45') |
+-------------------+
| 838:59:59 |
+-------------------+
1 row in set, 1 warning (0.003 sec) Vérifions l'avertissement :
SHOW WARNINGS; Résultat (en utilisant la sortie verticale) :
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Truncated incorrect time value: '978:30:45' | +---------+------+---------------------------------------------+
Date actuelle
Nous pouvons passer NOW() comme argument datetime pour utiliser l'heure actuelle :
SELECT
NOW(),
TIME(NOW()); Résultat :
+---------------------+-------------+ | NOW() | TIME(NOW()) | +---------------------+-------------+ | 2021-05-27 10:24:23 | 10:24:23 | +---------------------+-------------+
Arguments invalides
Lorsqu'un argument invalide est passé, TIME() renvoie null avec un avertissement :
SELECT TIME('Ten Thirty AM'); Résultat :
+-----------------------+
| TIME('Ten Thirty AM') |
+-----------------------+
| NULL |
+-----------------------+
1 row in set, 1 warning (0.002 sec) Vérifiez l'avertissement :
SHOW WARNINGS; Résultat :
+---------+------+---------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------+ | Warning | 1292 | Incorrect time value: 'Ten Thirty AM' | +---------+------+---------------------------------------+
Argument manquant
Appel de TIME() avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT TIME(); 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 TIME('10: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