In MariaDB, HOUR()
è una funzione di data e ora incorporata che restituisce l'ora da una determinata espressione dell'ora.
Accetta un argomento, che è l'ora da cui vuoi estrarre l'ora.
Per i valori dell'ora, restituisce l'ora come numero nell'intervallo 0
a 23
. Tuttavia, l'intervallo di TIME
i valori possono essere molto più grandi e, pertanto, il valore restituito può essere molto più alto di 23
.
Il valore di ritorno è sempre positivo, anche se viene fornito un tempo negativo.
Sintassi
La sintassi è questa:
HOUR(time)
Dove time
è l'espressione dell'ora da cui ricavare l'ora.
Esempio
Ecco un esempio:
SELECT HOUR('10:30:45');
Risultato:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Valori di data e ora
Funziona anche con i valori datetime:
SELECT HOUR('2030-02-01 10:30:45');
Risultato:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Orari più grandi
TIME
i valori possono essere compresi nell'intervallo '-838:59:59.999999'
a '838:59:59.999999'
.
Pertanto, la parte dell'ora può essere molto più alta di 23
:
SELECT HOUR('578:30:45');
Risultato:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Tempi negativi
I tempi negativi restituiscono un risultato positivo.
Esempio
SELECT HOUR('-578:30:45');
Risultato:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Orari fuori portata
Valori temporali al di fuori dell'intervallo '-838:59:59.999999'
a '838:59:59.999999'
restituisci 838
.
Esempio:
SELECT HOUR('978:30:45');
Risultato (usando l'output verticale):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Data attuale
Possiamo passare NOW()
come argomento datetime per utilizzare l'ora corrente:
SELECT
NOW(),
HOUR(NOW());
Risultato:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Argomenti non validi
Quando viene passato un argomento non valido, HOUR()
restituisce null
:
SELECT HOUR('Ten Thirty AM');
Risultato:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Argomento mancante
Chiamando HOUR()
con il numero errato di argomenti, o senza passare alcun argomento, genera un errore:
SELECT HOUR();
Risultato:
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
E un altro esempio:
SELECT HOUR('10:30:45', '06:30:45');
Risultato:
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