sql >> Base de Datos >  >> RDS >> SQLite

Cómo funciona la función JulianDay() en SQLite

El SQLite julianday() La función devuelve el número de días transcurridos desde el mediodía en Greenwich el 24 de noviembre de 4714 a.C. (utilizando el calendario gregoriano proléptico).

Si usa el calendario juliano proléptico, este es el lunes 1 de enero de 4713 a. C.

El día juliano es la cuenta continua de días desde el comienzo del período juliano. Por lo general, lo utilizan los astrónomos, el software, etc. para calcular los días transcurridos entre dos eventos.

Para usar esta función, debe proporcionar una cadena de tiempo, además de cualquier modificador (opcional). Un modificador le permite cambiar la fecha, como agregar una cantidad de días, establecer la hora local, etc.

Sintaxis

La sintaxis es así:

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

La timestring el argumento debe ser una cadena de tiempo válida.

El modifier los argumentos son opcionales. Puede proporcionar uno o más modificadores. Si proporciona un modificador, debe ser un modificador válido.

Ejemplo

Aquí hay un ejemplo para demostrar el julianday() función que se utiliza con un argumento.

SELECT julianday('now');

Resultado:

2458968.52391635

El now cadena de tiempo se convierte en el día juliano.

Agregar un modificador

Podemos modificar el resultado anterior usando un modificador. He aquí un ejemplo.

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

Resultado:

2458968.65149612

Múltiples modificadores

Como se mencionó, puede agregar uno o más modificadores. Este es un ejemplo de cómo agregar otro modificador al ejemplo anterior.

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

Resultado:

2458969.0685371 

julianday() vs strftime()

El julianday() la función devuelve exactamente el mismo resultado que strftime('%J', ...) devoluciones. El julianday() es solo una forma más conveniente de hacerlo.

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

Resultado:

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

Intervalo de fechas

Al igual que con todas las funciones de fecha y hora de SQLite, julianday() solo funciona para fechas entre 0000-01-01 00:00:00 y 9999-12-31 23:59:59 (día juliano números 1721059.5 a 5373484.5).

Para fechas fuera de ese rango, los resultados son indefinidos.