sql >> Base de Datos >  >> RDS >> MariaDB

Cómo funciona HOUR() en MariaDB

En MariaDB, HOUR() es una función de fecha y hora incorporada que devuelve la hora de una expresión de tiempo dada.

Acepta un argumento, que es el tiempo del que desea extraer la hora.

Para valores de hora del día, devuelve la hora como un número en el rango 0 a 23 . Sin embargo, el rango de TIME los valores pueden ser mucho mayores y, por lo tanto, el valor devuelto puede ser mucho mayor que 23 .

El valor devuelto siempre es positivo, incluso si se proporciona un tiempo negativo.

Sintaxis

La sintaxis es así:

HOUR(time)

Donde time es la expresión de tiempo de donde se obtiene la hora.

Ejemplo

He aquí un ejemplo:

SELECT HOUR('10:30:45');

Resultado:

+------------------+
| HOUR('10:30:45') |
+------------------+
|               10 |
+------------------+

Valores de fecha y hora

También funciona con valores de fecha y hora:

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

Resultado:

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

Horarios más amplios

TIME los valores pueden estar en el rango '-838:59:59.999999' a '838:59:59.999999' .

Por lo tanto, la parte de la hora puede ser mucho mayor que 23 :

SELECT HOUR('578:30:45');

Resultado:

+-------------------+
| HOUR('578:30:45') |
+-------------------+
|               578 |
+-------------------+

Tiempos negativos

Los tiempos negativos devuelven un resultado positivo.

Ejemplo

SELECT HOUR('-578:30:45');

Resultado:

+--------------------+
| HOUR('-578:30:45') |
+--------------------+
|                578 |
+--------------------+

Horas fuera de rango

Valores de tiempo fuera del rango '-838:59:59.999999' a '838:59:59.999999' devuelve 838 .

Ejemplo:

SELECT HOUR('978:30:45');

Resultado (usando salida vertical):

+-------------------+
| HOUR('978:30:45') |
+-------------------+
|               838 |
+-------------------+

Fecha actual

Podemos pasar NOW() como argumento de fecha y hora para usar la hora actual:

SELECT 
    NOW(),
    HOUR(NOW());

Resultado:

+---------------------+-------------+
| NOW()               | HOUR(NOW()) |
+---------------------+-------------+
| 2021-05-16 10:50:02 |          10 |
+---------------------+-------------+

Argumentos no válidos

Cuando se pasa un argumento no válido, HOUR() devuelve null :

SELECT HOUR('Ten Thirty AM');

Resultado:

+-----------------------+
| HOUR('Ten Thirty AM') |
+-----------------------+
|                  NULL |
+-----------------------+

Argumento faltante

Llamando a HOUR() con el número incorrecto de argumentos, o sin pasar ningún argumento, da como resultado un error:

SELECT HOUR();

Resultado:

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

Y otro ejemplo:

SELECT HOUR('10:30:45', '06:30:45');

Resultado:

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