Dans MariaDB, HOUR()
est une fonction de date et d'heure intégrée qui renvoie l'heure à partir d'une expression de temps donnée.
Il accepte un argument, qui est l'heure à partir de laquelle vous voulez extraire l'heure.
Pour les valeurs d'heure du jour, il renvoie l'heure sous forme de nombre dans la plage 0
à 23
. Cependant, la plage de TIME
les valeurs peuvent être beaucoup plus grandes, et par conséquent, la valeur renvoyée peut être bien supérieure à 23
.
La valeur de retour est toujours positive, même si un temps négatif est fourni.
Syntaxe
La syntaxe ressemble à ceci :
HOUR(time)
Où time
est l'expression de temps à partir de laquelle obtenir l'heure.
Exemple
Voici un exemple :
SELECT HOUR('10:30:45');
Résultat :
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Valeurs DateHeure
Cela fonctionne également avec les valeurs datetime :
SELECT HOUR('2030-02-01 10:30:45');
Résultat :
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
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 HOUR('578:30:45');
Résultat :
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Temps négatifs
Les temps négatifs renvoient un résultat positif.
Exemple
SELECT HOUR('-578:30:45');
Résultat :
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Heures hors plage
Valeurs de temps en dehors de la plage '-838:59:59.999999'
à '838:59:59.999999'
renvoie 838
.
Exemple :
SELECT HOUR('978:30:45');
Résultat (en utilisant la sortie verticale) :
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Date actuelle
Nous pouvons passer NOW()
comme argument datetime pour utiliser l'heure actuelle :
SELECT
NOW(),
HOUR(NOW());
Résultat :
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Arguments invalides
Lorsqu'un argument invalide est passé, HOUR()
renvoie null
:
SELECT HOUR('Ten Thirty AM');
Résultat :
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Argument manquant
Appel HOUR()
avec le mauvais nombre d'arguments, ou sans passer d'arguments, génère une erreur :
SELECT HOUR();
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 HOUR('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