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.