SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como a função Time() funciona no SQLite


SQLite tem um time() função que permite retornar um valor de tempo com base em uma string de tempo e quaisquer modificadores.

Retorna a hora neste formato:HH:MM:SS

Para usar esta função, você precisa fornecer uma string de tempo, além de quaisquer modificadores (opcionais). Um modificador permite que você altere a hora, como adicionar um número de horas, defini-lo para a hora local, etc.

Sintaxe


A sintaxe do time() função fica assim:
time(timestring, modifier, modifier, ...)

A timestring argumento deve ser uma string de tempo válida.

O modifier argumentos são opcionais. Você pode fornecer um ou mais modificadores. Se você fornecer um modificador, ele deverá ser um modificador válido.

Exemplo


Aqui está um exemplo básico para demonstrar o time() função que está sendo usada com um argumento.
SELECT time('now');

Resultado:
03:47:36

O now time string é convertido na data e hora atuais. Dado que estou usando o time() função, apenas a parte do tempo é retornada.

Adicionar um modificador


Podemos modificar o resultado anterior usando um modificador. Aqui está um exemplo.
SELECT time('now', '+5 hours');

Resultado:
08:48:24

Neste caso, adicionei cinco horas ao tempo.

Vários modificadores


Como mencionado, você pode adicionar um ou mais modificadores. Aqui está um exemplo de adição de outro modificador ao exemplo anterior.
SELECT time('now', '+5 hours', 'localtime');

Resultado:
18:50:08

O localtime O modificador assume que a string de tempo fornecida está em UTC (Universal Coordinated Time). Em seguida, ele ajusta a string de hora para que exiba a hora local.

Portanto, você pode obter um resultado diferente, dependendo do seu horário local.

String Literal como a string de tempo


Os exemplos acima usam now como a string de hora, mas você pode fornecer qualquer string de hora válida.

Aqui estão alguns outros exemplos.
SELECT time('1999-12-18 17:10:23');

Resultado:
17:10:23 

Nesse caso, ele simplesmente remove a parte da data da data.

time() vs strftime()


O time() A função retorna exatamente o mesmo resultado que strftime('%H:%M:%S', ...) retorna. O time() função é apenas uma maneira mais conveniente de fazê-lo.
SELECT 
  time('now'),
  strftime('%H:%M:%S', 'now');

Resultado:
time('now')  strftime('%H:%M:%S', 'now')
-----------  ---------------------------
03:56:09     03:56:09                   

Período


Assim como todas as funções de data e hora do SQLite, time() só funciona para datas entre 0000-01-01 00:00:00 e 9999-12-31 23:59:59 (números do dia juliano 1721059.5 a 5373484.5).

Para datas fora desse intervalo, os resultados são indefinidos.