English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Fechas y horas en SQLite

SQLite admite las siguientes cinco funciones de fecha y hora:

NúmeroFunciónEjemplo
1date(cadenaDeFechaYHora, modificador, modificador, ...)Con YYYY-MM-Devuelve la fecha en formato DD.
2time(cadenaDeFechaYHora, modificador, modificador, ...)Devuelve la hora en formato HH:MM:SS.
3datetime(cadenaDeFechaYHora, modificador, modificador, ...)Con YYYY-MM-Formato DD HH:MM:SS
4julianday(cadenaDeFechaYHora, modificador, modificador, ...)Esto devolverá desde el tiempo de Greenwich en el año anterior a Cristo 4714 Año 11 Mes 24 Días desde mediodía.
5strftime(formato, cadenaDeFechaYHora, modificador, modificador, ...)Esto devolverá la fecha formateada según la cadena de formato especificada como primer parámetro. La formación específica se explica a continuación.

Las cinco funciones de fecha y hora anteriores toman la cadena de fecha y hora como parámetro. La cadena de fecha y hora puede seguirse por cero o más modificadores. La función strftime() también puede tomar la cadena de formato como su primer parámetro. A continuación se explicarán en detalle diferentes tipos de cadenas de fecha y hora y modificadores.

Cadena de fecha y hora

Una cadena de fecha y hora puede adoptar cualquier una de las siguientes formas:

NúmeroCadena de fecha y horaEjemplo
1YYYY-MM-DD2010-12-30
2YYYY-MM-DD HH:MM2010-12-30 12:10
3YYYY-MM-DD HH:MM:SS.SSS2010-12-30 12:10:04.100
4MM-DD-YYYY HH:MM30-12-2010 12:10
5HH:MM12:10
6YYYY-MM-DDTHH:MM2010-12-30 12:10
7HH:MM:SS12:10:01
8YYYYMMDD HHMMSS20101230 121001
9ahora2013-05-07

Puede usar "T" como carácter separador de fecha y hora.

Modificador (Modifier)

Las cadenas de fecha y hora pueden seguirse por cero o más modificadores, lo que cambiará las fechas y horas devueltas por los cinco funciones anteriores./o hora. Cualquier una de las cinco funciones anteriores devuelve una hora. Los modificadores deben usarse de izquierda a derecha, a continuación se enumeran los modificadores que se pueden usar en SQLite:

  • NNN días

  • NNN horas

  • NNN minutos

  • NNN.NNNN segundos

  • NNN meses

  • NNN años

  • start of month

  • start of year

  • start of day

  • weekday N

  • unixepoch

  • localtime

  • utc

formatear

SQLite proporciona funciones muy convenientes strftime() para formatear cualquier fecha y hora. Puede usar los siguientes reemplazos para formatear la fecha y hora:

reemplazodescripción
%del día del mes, 01-31
%fsegundos con decimales, SS.SSS
%Hhora, 00-23
%jel día del año, 001-366
%Jnúmero juliano, DDDD.DDDD
%mmes, 00-12
%Mminuto, 00-59
%sdesde 1970-01-01 los segundos desde
%Ssegundo, 00-59
%wel día de la semana, 0-6 (0 es domingo)
%Wla semana del año, 01-53
%Yaño, YYYY
%%símbolo %

Ejemplo

Ahora, vamos a usar el símbolo de SQLite para intentar varios ejemplos. Las siguientes órdenes calculan la fecha actual.

sqlite> SELECT date('now');
2013-05-07

Las siguientes órdenes calculan el último día del mes actual.

sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31

Las siguientes órdenes calculan la fecha y hora de un timestamp UNIX dado1092941466la fecha y hora.

sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06

Las siguientes órdenes calculan la fecha y hora de un timestamp UNIX dado1092941466la fecha y hora, y compensa su zona horaria local.

sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06

Las siguientes órdenes calculan el timestamp UNIX actual.

sqlite> SELECT strftime('%s','now');
1393348134

Las siguientes órdenes calculan los días desde la firma de la Declaración de la Independencia de los Estados Unidos.

sqlite> SELECT julianday('now') - julianday('1776-07-04);
86798.7094695023

Las siguientes órdenes calculan desde2004los segundos desde una hora específica del año.

sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56);
295001572

Las siguientes órdenes calculan el año en curso10la fecha del primer martes del mes.

sqlite> SELECT date('now','start of year','+9 months','weekday 2);
2013-10-01

Las siguientes órdenes calculan el tiempo desde la era UNIX en segundos (similares a strftime('%s', 'now'), pero incluyen la parte decimal).

sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598

Para convertir valores de hora UTC y localtime al formatear fechas, utilice los modificador utc o localtime, como se muestra a continuación:

sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00