SQLite
 sql >> Database >  >> RDS >> SQLite

Come funziona la funzione JulianDay() in SQLite

SQLite julianday() La funzione restituisce il numero di giorni trascorsi da mezzogiorno a Greenwich il 24 novembre 4714 a.C. (usando il calendario gregoriano prolettico).

Se si utilizza il prolettico calendario giuliano, questo è lunedì 1 gennaio 4713 aC.

Il giorno giuliano è il conteggio continuo dei giorni dall'inizio del periodo giuliano. Viene generalmente utilizzato da astronomi, software e così via per calcolare i giorni trascorsi tra due eventi.

Per utilizzare questa funzione, è necessario fornire una stringa di tempo, più eventuali modificatori (facoltativi). Un modificatore ti consente di modificare la data, ad esempio aggiungere un numero di giorni, impostarlo sull'ora locale, ecc

Sintassi

La sintassi è questa:

julianday(timestring, modifier, modifier, ...)

Il timestring l'argomento deve essere una stringa di tempo valida.

Il modifier gli argomenti sono facoltativi. Puoi fornire uno o più modificatori. Se fornisci un modificatore, deve essere un modificatore valido.

Esempio

Ecco un esempio per dimostrare il julianday() funzione utilizzata con un argomento.

SELECT julianday('now');

Risultato:

2458968.52391635

Il now la stringa di tempo viene convertita nel giorno giuliano.

Aggiungi un modificatore

Possiamo modificare il risultato precedente usando un modificatore. Ecco un esempio.

SELECT julianday('now', '+3 hours');

Risultato:

2458968.65149612

Modificatori multipli

Come accennato, puoi aggiungere uno o più modificatori. Ecco un esempio di aggiunta di un altro modificatore all'esempio precedente.

SELECT julianday('now', '+3 hours', 'localtime');

Risultato:

2458969.0685371 

julianday() vs strftime()

Il julianday() la funzione restituisce esattamente lo stesso risultato che strftime('%J', ...) ritorna. Il julianday() funzione è solo un modo più conveniente per farlo.

SELECT 
  julianday('now'),
  strftime('%J', 'now');

Risultato:

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

Intervallo di date

Come per tutte le funzioni di data e ora di SQLite, julianday() funziona solo per date comprese tra 0000-01-01 00:00:00 e 9999-12-31 23:59:59 (Julian Day numeri da 1721059.5 a 5373484.5).

Per le date al di fuori di tale intervallo, i risultati non sono definiti.