SQLite - Fecha y hora
SQLite admite cinco funciones de fecha y hora de la siguiente manera:
No Señor. | Función | Ejemplo |
---|---|---|
1 | fecha (cadena de tiempo, modificadores ...) | Esto devuelve la fecha en este formato: AAAA-MM-DD |
2 | tiempo (cadena de tiempo, modificadores ...) | Esto devuelve la hora como HH: MM: SS |
3 | fecha y hora (cadena de tiempo, modificadores ...) | Esto devuelve AAAA-MM-DD HH: MM: SS |
4 | julianday (cadena de tiempo, modificadores ...) | Devuelve el número de días desde el mediodía en Greenwich el 24 de noviembre de 4714 a. C. |
5 | strftime (cadena de tiempo, modificadores ...) | Esto devuelve la fecha formateada según la cadena de formato especificada como el primer argumento formateado según los formateadores que se explican a continuación. |
Las cinco funciones de fecha y hora anteriores toman una cadena de tiempo como argumento. La cadena de tiempo va seguida de cero o más modificadores. La función strftime () también toma una cadena de formato como primer argumento. La siguiente sección le brindará detalles sobre los diferentes tipos de cadenas de tiempo y modificadores.
Cadenas de tiempo
Una cadena de tiempo puede tener cualquiera de los siguientes formatos:
No Señor. | Cadena de tiempo | Ejemplo |
---|---|---|
1 | AAAA-MM-DD | 2010-12-30 |
2 | AAAA-MM-DD HH: MM | 2010-12-30 12:10 |
3 | AAAA-MM-DD HH: MM: SS.SSS | 2010-12-30 12: 10: 04.100 |
4 | DD-MM-AAAA HH: MM | 30-12-2010 12:10 |
5 | HH: MM | 12:10 |
6 | AAAA-MM-DDTHH: MM | 2010-12-30 12:10 |
7 | HH: MM: SS | 12:10:01 |
8 | AAAAMMDD HHMMSS | 20101230 121001 |
9 | ahora | 2013-05-07 |
Puede utilizar la "T" como un carácter literal que separa la fecha y la hora.
Modificadores
La cadena de tiempo puede ir seguida de cero o más modificadores que alterarán la fecha y / o la hora devuelta por cualquiera de las cinco funciones anteriores. Los modificadores se aplican de izquierda a derecha.
Los siguientes modificadores están disponibles en SQLite:
- NNN días
- NNN horas
- NNN minutos
- NNN.NNNN segundos
- NNN meses
- NNN años
- comienzo de mes
- inicio de año
- comienzo del día
- día de la semana N
- unixepoch
- localtime
- utc
Formateadores
SQLite proporciona una función muy útil strftime()para formatear cualquier fecha y hora. Puede utilizar las siguientes sustituciones para formatear su fecha y hora.
Sustitución | Descripción |
---|---|
%re | Día del mes, 01-31 |
%F | Segundos fraccionarios, SS.SSS |
% H | Hora, 00-23 |
% j | Día del año, 001-366 |
% J | Número de día juliano, DDDD.DDDD |
%metro | Mes, 00-12 |
%METRO | Minuto, 00-59 |
% s | Segundos desde 1970-01-01 |
% S | Segundos, 00-59 |
% w | Día de la semana, 0-6 (0 es domingo) |
% W | Semana del año, 01-53 |
% Y | Año, AAAA |
%% | símbolo% |
Ejemplos
Probemos ahora con varios ejemplos usando el indicador SQLite. El siguiente comando calcula la fecha actual.
sqlite> SELECT date('now');
2013-05-07
El siguiente comando calcula el último día del mes actual.
sqlite> SELECT date('now','start of month','+1 month','-1 day');
2013-05-31
El siguiente comando calcula la fecha y la hora para una marca de tiempo UNIX determinada 1092941466.
sqlite> SELECT datetime(1092941466, 'unixepoch');
2004-08-19 18:51:06
El siguiente comando calcula la fecha y la hora de una marca de tiempo UNIX determinada 1092941466 y compensa su zona horaria local.
sqlite> SELECT datetime(1092941466, 'unixepoch', 'localtime');
2004-08-19 13:51:06
El siguiente comando calcula la marca de tiempo actual de UNIX.
sqlite> SELECT strftime('%s','now');
1393348134
El siguiente comando calcula el número de días desde la firma de la Declaración de Independencia de EE. UU.
sqlite> SELECT julianday('now') - julianday('1776-07-04');
86798.7094695023
El siguiente comando calcula el número de segundos desde un momento particular en 2004.
sqlite> SELECT strftime('%s','now') - strftime('%s','2004-01-01 02:34:56');
295001572
El siguiente comando calcula la fecha del primer martes de octubre del año actual.
sqlite> SELECT date('now','start of year','+9 months','weekday 2');
2013-10-01
El siguiente comando calcula el tiempo desde la época de UNIX en segundos (como strftime ('% s', 'ahora') excepto que incluye parte fraccionaria).
sqlite> SELECT (julianday('now') - 2440587.5)*86400.0;
1367926077.12598
Para convertir entre los valores de hora local y UTC al formatear una fecha, use los modificadores utc o localtime de la siguiente manera:
sqlite> SELECT time('12:00', 'localtime');
05:00:00
sqlite> SELECT time('12:00', 'utc');
19:00:00