Tengo problemas de diseño con el almacenamiento/recuperación de datos usando Python y SQLite.Almacenamiento y conversión de fecha SQLite
Entiendo que una columna de fecha SQLite almacena las fechas como texto en formato ISO (es decir, '2010-05-25'
). Así que cuando puedo mostrar una fecha británica (por ejemplo. En una página web) que convertir la fecha usando
datetime.datetime.strptime(mydate,'%Y-%m-%d').strftime('%d/%m/%Y')
Sin embargo, cuando se trata de datos de escritura de nuevo a la mesa, SQLite es muy perdona y es muy feliz '25/06/2003'
para almacenar en un campo de fecha, pero esto no es lo ideal porque
me podía quedar con una mezcla de formatos de fecha en la misma columna de ,
Las funciones de fecha de SQLite solo funcionan con formato ISO.
por lo tanto necesito para convertir la cadena de fecha de nuevo a formato ISO antes cometer, pero entonces se necesitaría una función genérica que comprueba los datos a punto de escribirse en todos los campos de fecha y convierte a la norma ISO si es necesario. Eso suena un un poco tedioso para mí, pero tal vez sea inevitable.
¿Hay soluciones más simples? ¿Sería más fácil cambiar el campo de fecha a un campo de 10 caracteres y almacenar 'dd/mm/yyyy'
en toda la tabla? De esta forma, no es necesaria ninguna conversión de al leer o escribir desde la tabla, y podría usar las funciones de datetime() si tuviera que realizar cualquier aritmética de fecha.
¿Cómo han superado este problema otros desarrolladores? Cualquier ayuda sería apreciada. Para el registro, estoy usando SQLite3 con Python 3.1.
Thanks unutbu - parece que los objetos de fecha son el camino a seguir. Saludos. –