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 | +---------------------------------+