1

一个简单的例子:

import sqlite3, datetime, csv
import pandas.io.sql as sql
from dateutil.parser import parse

my_db = 'test_db.db'

connection=sqlite3.connect(my_db,detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)
cursor = connection.cursor()

cursor.execute('''CREATE TABLE test_table (Id  INTEGER PRIMARY KEY, Date DATE);''')

date_str = '1/1/2011'
date_parsed = parse(date_str)

cursor.execute('INSERT into test_table (Id, Date) values(?,?)',(1,date_parsed))

cursor.execute('SELECT * FROM test_table')

产量:

ValueError: invalid literal for int() with base 10: '01 00:00:00'

我只是想让 SQL 数据库以日期时间格式返回我的日期,以便我可以对它们执行过滤查询。

我已经阅读了这篇相关文章以供参考:

SQLite 日期存储和转换

4

1 回答 1

3

在你的内部CREATE TABLE,你正在使用Date DATE

CREATE TABLE test_table (Id  INTEGER PRIMARY KEY, Date DATE)

这样做的问题是,它试图映射到datetime.date您的格式不是的,如果您将格式更改为使用 a TIMESTAMP,那么它可以正常工作并尝试使其成为datetime.datetime...

CREATE TABLE test_table (Id  INTEGER PRIMARY KEY, Date TIMESTAMP)
于 2012-11-30T18:39:52.073 回答