MySQL HOUR() la funzione viene utilizzata per restituire la componente dell'ora da un valore temporale.
Il valore restituito per un valore dell'ora sarà compreso tra 0 e 23, tuttavia l'intervallo restituito da questa funzione potrebbe essere molto più ampio, a causa del fatto che un ora il tipo di dati non è limitato a un'ora del giorno (può anche essere utilizzato per rappresentare il tempo trascorso o un intervallo di tempo tra due eventi). Ciò significa che il valore restituito potrebbe essere maggiore di 24 ore o addirittura un valore negativo.
Sintassi
La sintassi di questa funzione è la seguente:
HOUR(time)
Dove time è il valore temporale da cui vuoi estrarre il componente dell'ora.
Esempio 1 – Utilizzo di base
Ecco un esempio da dimostrare.
SELECT HOUR('10:35:27');
Risultato:
+------------------+
| HOUR('10:35:27') |
+------------------+
| 10 |
+------------------+
Esempio 2 – Superiore a 24 ore
Come accennato, se il valore del tempo viene utilizzato per rappresentare il tempo trascorso o un intervallo di tempo tra due eventi, potrebbe avere una componente ora maggiore di 24 ore. Quindi il seguente esempio è perfettamente valido.
SELECT HOUR('310:35:27');
Risultato:
+-------------------+
| HOUR('310:35:27') |
+-------------------+
| 310 |
+-------------------+
Esempio 3 – Valori negativi
I valori negativi sono perfettamente validi anche per il tempo tipo di dati. Tuttavia, nota che HOUR() funzione lo restituirà come un valore positivo:
SELECT HOUR('-310:35:27');
Risultato:
+--------------------+
| HOUR('-310:35:27') |
+--------------------+
| 310 |
+--------------------+
Se questo è un problema e hai bisogno di valori negativi restituiti come valori negativi, EXTRACT() la funzione potrebbe essere quello che stai cercando:
SELECT EXTRACT(HOUR FROM '-310:35:27');
Risultato:
+---------------------------------+ | EXTRACT(HOUR FROM '-310:35:27') | +---------------------------------+ | -310 | +---------------------------------+