猿问

将日期字符串从 Python 插入 SQLite 给出意外结果

正如标题所述,我正在尝试将日期(格式化为字符串)插入到 SQLite 数据库中。这有效,但是日期在 SQLite 中没有正确显示。


这是我的代码的一个子集:


print("Connecting to the database...")        

sqlite_file = './sqlite_db/cfr_changes.db'

conn = sqlite3.connect(sqlite_file)

c = conn.cursor()



today_date = datetime.now().strftime("%Y-%m-%d")

print(today_date)

print("Inserting tracker into database...")


c.execute("INSERT INTO DATE (`date_id`) VALUES(" + today_date + ")")

c.executemany("INSERT INTO TRACKER (`cfr_status`, `comment`, `mdu`, `iwb`, `obsolete`, `date_id`) VALUES(?,?,?,?,?, " + today_date + ")", list(tracker_df.to_records(index=False)))

#print(c.fetchall())


conn.commit()

conn.close()

打印 'today_date' 返回我所期望的:


2018-10-24

但是,当我通过终端检查 SQLite 中的记录时,日期显示为:


1984

请注意,'date_id' 是一个 VARCHAR(255),日期格式应该不是问题。我认为这只是将字符串存储到字符串中(或足够接近)。


谁能告诉我为什么这不能按预期工作?


作为参考,以下是“TRACKER”和“DATE”表的创建方式:


CREATE TABLE `DATE` (

`date_id` VARCHAR(255) NOT NULL PRIMARY KEY);


CREATE TABLE `TRACKER` (

`tracker_id` INTEGER NOT NULL PRIMARY KEY,

 `cfr_status` VARCHAR(255) NOT NULL,

`mdu` BOOLEAN, `iwb` BOOLEAN,

`obsolete` BOOLEAN, `comment` VARCHAR(255), `date_id` VARCHAR(255) NOT NULL, FOREIGN KEY (`date_id`) REFERENCES DATE(`date_id`));

任何帮助表示赞赏。


九州编程
浏览 211回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答