sql >> Databáze >  >> RDS >> SQLite

Jak funguje funkce JulianDay() v SQLite

SQLite julianday() funkce vrací počet dní od poledne v Greenwichi 24. listopadu 4714 př. (pomocí proleptického gregoriánského kalendáře).

Pokud používáte proleptický juliánský kalendář, je to pondělí 1. ledna 4713 př.nl.

Juliánský den je nepřetržitý počet dní od začátku Juliánského období. Obvykle jej používají astronomové, software atd. k výpočtu uplynulých dnů mezi dvěma událostmi.

Chcete-li použít tuto funkci, musíte zadat časový řetězec a jakékoli (volitelné) modifikátory. Modifikátor vám umožňuje změnit datum, například přidat počet dní, nastavit jej na místní čas atd

Syntaxe

Syntaxe vypadá takto:

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

timestring argument musí být platný časový řetězec.

modifier argumenty jsou volitelné. Můžete poskytnout jeden nebo více modifikátorů. Pokud zadáte modifikátor, musí to být platný modifikátor.

Příklad

Zde je příklad demonstrující julianday() funkce se používá s jedním argumentem.

SELECT julianday('now');

Výsledek:

2458968.52391635

now časový řetězec se převede na juliánský den.

Přidat modifikátor

Předchozí výsledek můžeme upravit pomocí modifikátoru. Zde je příklad.

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

Výsledek:

2458968.65149612

Více modifikátorů

Jak již bylo zmíněno, můžete přidat jeden nebo více modifikátorů. Zde je příklad přidání dalšího modifikátoru k předchozímu příkladu.

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

Výsledek:

2458969.0685371 

julianday() vs strftime()

julianday() funkce vrací přesně stejný výsledek jako strftime('%J', ...) se vrací. julianday() funkce je jen pohodlnější způsob, jak to udělat.

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

Výsledek:

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

Časové období

Stejně jako u všech funkcí data a času SQLite, julianday() funguje pouze pro data mezi 0000-01-01 00:00:00 a 9999-12-31 23:59:59 (čísla juliánského dne 1721059,5 až 5373484,5).

Pro data mimo tento rozsah nejsou výsledky definovány.


  1. Jak vytvořit skutečný vztah jeden k jednomu na serveru SQL Server

  2. Formátování dat ve vizualizacích Power BI Desktop

  3. Jak vyvolat výjimku uvnitř spouštěče? Existuje způsob, jak to udělat?

  4. Kolik databázových indexů je příliš mnoho?