Tengo una base de datos SQLite, versión 3 y estoy usando C # para crear una aplicación que use esta base de datos.
Quiero usar un campo de marca de tiempo en una tabla para concurrencia, pero noto que cuando inserto un nuevo registro, este campo no está configurado y es nulo.
Por ejemplo, en MS SQL Server, si uso un campo de marca de tiempo, esto es actualizado por la base de datos, no tengo que configurarlo yo mismo. ¿Es esto posible en SQLite?
DATETIME
datos , pero SQLite acepta cualquier cosa como tipo de campo .DEFAULT (STRFTIME('%Y-%m-%d %H:%M:%f', 'NOW', 'localtime'))
uno realmente se obtienen valores significativos de microsegundos.Puede crear el campo TIMESTAMP en la tabla en el SQLite, vea esto:
Este es el resultado:
fuente
Al leer datefunc, un ejemplo práctico de finalización automática de fecha y hora sería:
Insertemos algunas filas de una manera que inicie la finalización automática de fecha y hora:
Los datos almacenados muestran claramente que los dos primeros son iguales pero no la tercera función:
¡Preste atención a que las funciones SQLite están entre paréntesis! ¿Qué tan difícil fue mostrarlo en un ejemplo?
¡Que te diviertas!
fuente
Puedes usar disparadores. funciona muy bien
fuente
Para complementar las respuestas anteriores ...
Si está utilizando EF, adornar la propiedad con Anotación de datos [Marca de tiempo], luego vaya a OnModelCreating anulado, dentro de su clase de contexto, y agregue este código Fluent API:
Hará un valor predeterminado para cada dato que se insertará en esta tabla.
fuente
puede usar la fecha y hora personalizada usando ...
use 'NOW', 'localtime' para obtener la fecha actual del sistema; de lo contrario, mostrará algún tiempo pasado u otro en su base de datos después del tiempo de inserción en su base de datos.
Gracias...
fuente
Si utiliza el navegador SQLite DB, puede cambiar el valor predeterminado de esta manera:
Recomiendo hacer una actualización de su base de datos antes, porque un formato incorrecto en el valor puede causar problemas en el navegador SQLLite.
fuente