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

Comment HOUR() fonctionne dans MariaDB

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)

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