MySQL HOUR() se utiliza para devolver el componente de hora de un valor de tiempo.
El valor devuelto para un valor de hora del día estará entre 0 y 23, sin embargo, el rango devuelto por esta función podría ser mucho mayor, debido al hecho de que una hora El tipo de datos no se limita solo a una hora del día (también se puede usar para representar el tiempo transcurrido o un intervalo de tiempo entre dos eventos). Esto significa que el valor devuelto podría ser mayor a 24 horas o incluso un valor negativo.
Sintaxis
La sintaxis de esta función es así:
HOUR(time)
Donde time es el valor de tiempo del que desea extraer el componente de hora.
Ejemplo 1:uso básico
Aquí hay un ejemplo para demostrarlo.
SELECT HOUR('10:35:27');
Resultado:
+------------------+
| HOUR('10:35:27') |
+------------------+
| 10 |
+------------------+
Ejemplo 2:más de 24 horas
Como se mencionó, si el valor de tiempo se usa para representar el tiempo transcurrido o un intervalo de tiempo entre dos eventos, podría tener un componente de hora mayor a 24 horas. Así que el siguiente ejemplo es perfectamente válido.
SELECT HOUR('310:35:27');
Resultado:
+-------------------+
| HOUR('310:35:27') |
+-------------------+
| 310 |
+-------------------+
Ejemplo 3:valores negativos
Los valores negativos también son perfectamente válidos para el tiempo tipo de datos. Sin embargo, tenga en cuenta que HOUR() la función lo devolverá como un valor positivo:
SELECT HOUR('-310:35:27');
Resultado:
+--------------------+
| HOUR('-310:35:27') |
+--------------------+
| 310 |
+--------------------+
Si esto es un problema y necesita valores negativos devueltos como valores negativos, EXTRACT() función podría ser lo que estás buscando:
SELECT EXTRACT(HOUR FROM '-310:35:27');
Resultado:
+---------------------------------+ | EXTRACT(HOUR FROM '-310:35:27') | +---------------------------------+ | -310 | +---------------------------------+