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