Je suis conscient de ce similar question on SO qui demande essentiellement la même chose. Cependant, je semble avoir un message d'erreur. Laisse-moi expliquer.Python Stockage et récupération de la date dans la base de données Sqlite3
Afin de tester l'idée de stocker et récupérer Python objet Date avec base de données Sqlite3, j'ai créé ce petit script de test:
import sqlite3
import datetime
conn = sqlite3.connect("test.db")
conn.execute('''CREATE TABLE TEST
(
ID TEXT PRIMARY KEY NOT NULL,
DATE TIMESTAMP
);''')
conn.commit()
mydate = datetime.date(2014,4,28)
myid = 'test'
conn.execute("INSERT INTO TEST (ID,DATE)\
VALUES(?,?)",[myid,mydate])
conn.commit()
conn.close()
conn = sqlite3.connect("test.db")
cursor = conn.execute("SELECT ID,DATE from TEST")
for row in cursor:
retrievedDate = row[1]
print retrievedDate,type(retrievedDate)
conn.close()
Les travaux de code, mais la date récupérée est en unicode
.
J'ai découvert à partir du lien ci-dessus que sans les paramètres detect_types=sqlite3.PARSE_DECLTYPES
sqlite retournera unicode. Alors, je l'ai changé le code comme ceci:
...
conn = sqlite3.connect("test.db",detect_types=sqlite3.PARSE_DECLTYPES)
cursor = conn.execute("SELECT ID,DATE from TEST")
for row in cursor:
retrievedDate = row[1]
print retrievedDate,type(retrievedDate)
...
Mais maintenant, il me donne ce message d'erreur:
File "C:\Python27\lib\sqlite3\dbapi2.py", line 66, in convert_timestamp
datepart, timepart = val.split(" ")
ValueError: need more than 1 value to unpack
Ce qui est à l'origine du problème?
Il fonctionne! Le lien vers une autre question SO sur mon message a utilisé 'timestamp' au lieu de' DATE'. Mais "DATE" semble bien fonctionner pour moi. Merci –
@ChrisAung: 'timestamp' est pour les objets' datetime.datetime' à la place. –