MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como HOUR() funciona no MariaDB


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