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

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


O SQLite julianday() A função retorna o número de dias desde o meio-dia em Greenwich em 24 de novembro de 4714 a.C. (usando o calendário gregoriano proléptico).

Se estiver usando o calendário juliano proléptico, esta é segunda-feira, 1º de janeiro de 4713 aC.

O dia juliano é a contagem contínua de dias desde o início do período juliano. É normalmente usado por astrônomos, software, etc., para calcular os dias decorridos entre dois eventos.

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 data, como adicionar um número de dias, defini-lo para a hora local, etc.

Sintaxe


A sintaxe fica assim:
julianday(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 para demonstrar o julianday() função que está sendo usada com um argumento.
SELECT julianday('now');

Resultado:
2458968.52391635

O now seqüência de tempo é convertida no Dia Juliano.

Adicionar um modificador


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

Resultado:
2458968.65149612

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 julianday('now', '+3 hours', 'localtime');

Resultado:
2458969.0685371 

julianday() vs strftime()


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

Resultado:
julianday('now')  strftime('%J', 'now')
----------------  ---------------------
2458968.52807836  2458968.528078356    

Período


Assim como todas as funções de data e hora do SQLite, julianday() 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.