No MariaDB,
HOUR()
é uma função de data e hora integrada que retorna a hora de uma determinada expressão de hora. Ele aceita um argumento, que é o horário do qual você deseja extrair a hora.
Para valores de hora do dia, ele retorna a hora como um número no intervalo
0
para 23
. No entanto, o intervalo de TIME
valores podem ser muito maiores e, portanto, o valor retornado pode ser muito maior que 23
. O valor de retorno é sempre positivo, mesmo se for fornecido um tempo negativo.
Sintaxe
A sintaxe fica assim:
HOUR(time)
Onde
time
é a expressão de tempo para obter a hora. Exemplo
Aqui está um exemplo:
SELECT HOUR('10:30:45');
Resultado:
+------------------+ | HOUR('10:30:45') | +------------------+ | 10 | +------------------+
Valores de data e hora
Também funciona com valores de data e hora:
SELECT HOUR('2030-02-01 10:30:45');
Resultado:
+-----------------------------+ | HOUR('2030-02-01 10:30:45') | +-----------------------------+ | 10 | +-----------------------------+
Horários maiores
TIME
os valores podem estar no intervalo '-838:59:59.999999'
para '838:59:59.999999'
. Portanto, a parte da hora pode ser muito maior que
23
:SELECT HOUR('578:30:45');
Resultado:
+-------------------+ | HOUR('578:30:45') | +-------------------+ | 578 | +-------------------+
Tempos negativos
Tempos negativos retornam um resultado positivo.
Exemplo
SELECT HOUR('-578:30:45');
Resultado:
+--------------------+ | HOUR('-578:30:45') | +--------------------+ | 578 | +--------------------+
Horários fora do intervalo
Valores de tempo fora do intervalo
'-838:59:59.999999'
para '838:59:59.999999'
retornar 838
. Exemplo:
SELECT HOUR('978:30:45');
Resultado (usando saída vertical):
+-------------------+ | HOUR('978:30:45') | +-------------------+ | 838 | +-------------------+
Data atual
Podemos passar
NOW()
como argumento datetime para usar a hora atual:SELECT
NOW(),
HOUR(NOW());
Resultado:
+---------------------+-------------+ | NOW() | HOUR(NOW()) | +---------------------+-------------+ | 2021-05-16 10:50:02 | 10 | +---------------------+-------------+
Argumentos inválidos
Quando passado um argumento inválido,
HOUR()
retorna null
:SELECT HOUR('Ten Thirty AM');
Resultado:
+-----------------------+ | HOUR('Ten Thirty AM') | +-----------------------+ | NULL | +-----------------------+
Argumento ausente
Chamando
HOUR()
com o número errado de argumentos, ou sem passar nenhum argumento, resulta em um erro: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
E outro exemplo:
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