为了账号安全,请及时绑定邮箱和手机立即绑定

将日期值存储到python3中的sqlite表中存储整数值

将日期值存储到python3中的sqlite表中存储整数值

Go
慕斯王 2022-10-18 19:56:12
我被这个错误以及如何解决它所困扰。背景:我在 SQLite 中构建了一个“Paycheck”表,该表具有日期属性、净工资属性和总工资属性。我在 SQLite 中将date属性设置为date数据类型,并将net和Gross属性设置为integer数据类型。问题:我遇到了一个问题,当我尝试插入薪水记录时,日期属性将存储为“1994”。问题是,当我创建存储薪水记录的功能时,我在网上看到SQLite 中日期数据类型的日期格式是 yyyy-mm-dd,并且我确保我会以该格式插入日期,但代码会运行良好,但在数据库中,每次我尝试添加记录时,它都会为日期显示“1994”。以下是所有相关代码:import sqlite3import datetimedef date_sql_format():    """return date in sql DATE format"""    return str(datetime.datetime.now().strftime("%Y-%m-%d"))def execute(command: str):    """Take a sql query and execute it on the database."""    connect = sqlite3.connect("db.sqlite")    cursor = connect.cursor()    cursor.execute(command)    connect.commit()    connect.close()def add_paycheck(date: str, net: float, gross: float):    """Add a paycheck record to the database."""    template = f"{date}, {net}, {gross}"    execute(f"INSERT INTO Paycheck (Date, Net, Gross) VALUES ({template})")
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

将此评估 2020-04-22为算术表达式。答案是 1994 年。这就是这个数字的来源。

sqlite内部没有数据类型date。如果您查看sqlite 数据类型 doc的Affinity Name Examples部分,则create table 语句中的typename会产生关联。所以它做数学。DATENUMERIC

将日期列的数据类型更改为 TEXT。您可能希望方便地保留sqlite 日期和时间函数文档


查看完整回答
反对 回复 2022-10-18
  • 1 回答
  • 0 关注
  • 116 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信