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

Fecha y hora de SQLite

Resumen :en este tutorial, le mostraremos cómo trabajar con los valores de fecha y hora de SQLite y usar las funciones integradas de fechas y horas para manejar los valores de fecha y hora.

SQLite no es compatible con la clase de almacenamiento de fecha y/u hora integrada. En cambio, aprovecha algunas funciones de fecha y hora integradas para usar otras clases de almacenamiento como TEXT , REAL , o INTEGER para almacenar los valores de fecha y hora.

Usando el TEXT clase de almacenamiento para almacenar la fecha y la hora de SQLite

Si usa el TEXT clase de almacenamiento para almacenar el valor de fecha y hora, debe usar el formato de cadena ISO8601 de la siguiente manera:

YYYY-MM-DD HH:MM:SS.SSSCode language: SQL (Structured Query Language) (sql)

Por ejemplo, 2016-01-01 10:20:05.123

Primero, cree una nueva tabla llamada datetime_text para demostración.

CREATE TABLE datetime_text(
   d1 text, 
   d2 text
);Code language: SQL (Structured Query Language) (sql)

Pruébalo

La tabla contiene dos columnas d1 y d2 con TEXT tipo de datos.

Para insertar valores de fecha y hora en el datetime_text tabla, utiliza el DATETIME función.

Por ejemplo, para obtener el valor de fecha y hora UTC actual, pasa la cadena ahora literal a la función de la siguiente manera:

SELECT datetime('now');Code language: SQL (Structured Query Language) (sql)

Pruébalo

Para obtener la hora local, pasa un argumento adicional localtime .

SELECT datetime('now','localtime');Code language: SQL (Structured Query Language) (sql)

Pruébalo

En segundo lugar, inserte los valores de fecha y hora en el datetime_text tabla de la siguiente manera:

INSERT INTO datetime_text (d1, d2)
VALUES(datetime('now'),datetime('now', 'localtime'));Code language: SQL (Structured Query Language) (sql)

Pruébalo

Tercero, consulte los datos del datetime_text mesa.

SELECT
	d1,
	typeof(d1),
	d2,
	typeof(d2)
FROM
	datetime_text;Code language: SQL (Structured Query Language) (sql)

Pruébalo

Usando REAL clase de almacenamiento para almacenar valores de fecha y hora de SQLite

Puedes usar el REAL clase de almacenamiento para almacenar los valores de fecha y/o hora como números de días julianos, que es el número de días desde el mediodía en Greenwich el 24 de noviembre de 4714 a.C. basado en el calendario gregoriano proléptico.

Echemos un vistazo a un ejemplo del uso de la clase de almacenamiento REAL para almacenar valores de fecha y hora.

Primero, crea una nueva tabla llamada datetime_real .

CREATE TABLE datetime_real(
   d1 real
);Code language: SQL (Structured Query Language) (sql)

Pruébalo

En segundo lugar, inserte el valor de fecha y hora "actual" en el datetime_real mesa.

INSERT INTO datetime_real (d1)
VALUES(julianday('now'));Code language: SQL (Structured Query Language) (sql)

Pruébalo

Usamos el julianday() función para convertir la fecha y hora actual al día juliano.

Tercero, consulte los datos del datetime_real mesa.

SELECT d1 FROM datetime_real;Code language: SQL (Structured Query Language) (sql)

Pruébalo

La salida no es legible por humanos.

Afortunadamente, puede usar el date() incorporado y time() funciones para formatear un valor de fecha y hora de la siguiente manera:

SELECT
	date(d1),
	time(d1)
FROM
	datetime_real;Code language: SQL (Structured Query Language) (sql)

Pruébalo

Usando INTEGER para almacenar valores de fecha y hora de SQLite

Además de TEXT y REAL clases de almacenamiento, puede usar el INTEGER clase de almacenamiento para almacenar valores de fecha y hora.

Normalmente usamos el INTEGER para almacenar la hora UNIX, que es el número de segundos desde 1970-01-01 00:00:00 UTC . Vea el siguiente ejemplo:

Primero, cree una tabla que tenga una columna cuyo tipo de datos sea INTEGER para almacenar los valores de fecha y hora.

CREATE TABLE datetime_int (d1 int);Code language: SQL (Structured Query Language) (sql)

Pruébalo

En segundo lugar, inserte el valor de fecha y hora actual en el datetime_int mesa.

INSERT INTO datetime_int (d1)
VALUES(strftime('%s','now'));Code language: SQL (Structured Query Language) (sql)

Pruébalo

Tercero, consulte los datos de datetime_int mesa.

SELECT d1 FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Pruébalo

Es un número entero.

Para formatear el resultado, puede usar el datetime() incorporado funcionan de la siguiente manera:

SELECT datetime(d1,'unixepoch')
FROM datetime_int;Code language: SQL (Structured Query Language) (sql)

Pruébalo

Con SQLite, puede elegir libremente cualquier tipo de datos para almacenar valores de fecha y hora y usar la función integrada de fechas y horas para convertir entre formatos.

Para obtener información detallada sobre las funciones de fechas y horas de SQLite, consulte las funciones integradas de fechas y horas.

En este tutorial, ha aprendido a usar el TEXT , REAL y INTEGER Clases de almacenamiento para almacenar valores de fecha y hora. Además, aprendió a usar las funciones integradas de fechas y horas para convertir los valores de fecha y hora almacenados en formatos legibles.