Saltar al contenido

¿Cómo tener una marca de tiempo automática en SQLite?

Al fin después de mucho luchar ya dimos con el arreglo de esta incógnita que muchos lectores de nuestro sitio web han tenido. Si tienes algo más que compartir puedes dejar tu información.

Solución:

Simplemente declare un valor predeterminado para un campo:

CREATE TABLE MyTable(
    ID INTEGER PRIMARY KEY,
    Name TEXT,
    Other STUFF,
    Timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);

Sin embargo, si su INSERT El comando establece explícitamente este campo en NULLse establecerá en NULL.

Puede crear un campo TIMESTAMP en la tabla en SQLite, vea esto:

CREATE TABLE my_table (
    id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
    name VARCHAR(64),
    sqltime TIMESTAMP DEFAULT CURRENT_TIMESTAMP NOT NULL
);

INSERT INTO my_table(name, sqltime) VALUES('test1', '2010-05-28T15:36:56.200');
INSERT INTO my_table(name, sqltime) VALUES('test2', '2010-08-28T13:40:02.200');
INSERT INTO my_table(name) VALUES('test3');

Este es el resultado:

SELECT * FROM my_table;

ingrese la descripción de la imagen aquí

Al leer datefunc, un ejemplo práctico de finalización automática de fecha y hora sería:

sqlite> CREATE TABLE 'test' ( 
   ...>    'id' INTEGER PRIMARY KEY,
   ...>    'dt1' DATETIME NOT NULL DEFAULT (datetime(CURRENT_TIMESTAMP, 'localtime')), 
   ...>    'dt2' DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%d %H:%M:%S', 'now', 'localtime')), 
   ...>    'dt3' DATETIME NOT NULL DEFAULT (strftime('%Y-%m-%d %H:%M:%f', 'now', 'localtime'))
   ...> );

Insertemos algunas filas de una manera que inicie la finalización automática de fecha y hora:

sqlite> INSERT INTO 'test' ('id') VALUES (null);
sqlite> INSERT INTO 'test' ('id') VALUES (null);

Los datos almacenados muestran claramente que los dos primeros son iguales pero no la tercera función:

sqlite> SELECT * FROM 'test';
1|2017-09-26 09:10:08|2017-09-26 09:10:08|2017-09-26 09:10:08.053
2|2017-09-26 09:10:56|2017-09-26 09:10:56|2017-09-26 09:10:56.894

¡Preste atención a que las funciones de SQLite están entre paréntesis! ¿Qué tan difícil fue mostrarlo en un ejemplo?

¡Que te diviertas!

Puedes defender nuestro ensayo escribiendo un comentario o puntuándolo te damos las gracias.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *