gpt4 book ai didi

python - SQlite3 和 python 中的日期时间对象

转载 作者:行者123 更新时间:2023-12-01 08:28:55 24 4
gpt4 key购买 nike

尝试使用 python 和 sqlite3 在我的数据库项目中存储日期时间。这是我到目前为止所拥有的...

import sqlite3

def connect():
conn = sqlite3.connect("road_works.db")
cur = conn.cursor()
cur.execute("""CREATE TABLE IF NOT EXISTS road_works(id INTEGER PRIMARY
KEY, location TEXT, client TEXT, start_date TEXT, end_date TEXT)""")
conn.commit()
conn.close()


def insert(location, client, start_date, end_date):
conn = sqlite3.connect("road_works.db")
cur = conn.cursor()
cur.execute("INSERT INTO road_works VALUES (NULL, ?, ?, ?, ?)",
(location, client, start_date, end_date))
conn.commit()
conn.close()

insert("M25", "Lindor", "2019-03-16 20:00", "2019-07-16 06:00")

此时数据库将 start_date 和 end_date 作为文本。我想将其更改为日期,然后我可以开始进行计算,例如倒计时直到工作完成等。用户还将输入日期和时间,因此我无法使用 datetime.datetime.now()/today()我一直在阅读日期时间,但它比我习惯的更先进,如果有人能更好地解释它,我将不胜感激。

我几天来一直在寻找解决方案,这是我的第一个项目,它可能有点超出我的范围,但我感谢您的关注。

谢谢:)

已修复!谢谢您的帮助!

def insert(location, client, start_date, end_date):
conn = sqlite3.connect("road_works.db")
cur = conn.cursor()
cur.execute("INSERT INTO road_works VALUES (NULL, ?, ?, ?, ?)",
(location, client, start_date, end_date))
start_date = datetime.strptime(start_date, "%Y-%m-%d %H:%M")
end_date = datetime.strptime(end_date, "%Y-%m-%d %H:%M")
conn.commit()
conn.close()

最佳答案

没有原生datatype对于 sqlite 中的日期。我链接到的手册建议(参见 2.2)三种可能的日期存储方法:

  • 文本(ISO 8601 字符串)
  • REAL(儒略日数字)
  • 整数(Unix 时间)

我的建议是使用 ISO 8601 格式,因为它是标准化且明确的。此外,与替代方案相反,它是人类可读的,无需转换。 datetime 对象具有与字符串之间的标准转换方法。

请参阅下面的示例:

In [1]: from datetime import datetime                                                                    

In [2]: now = datetime.now()

In [3]: now
Out[3]: datetime.datetime(2019, 1, 3, 14, 53, 38, 596477)

In [4]: string = now.isoformat()

In [5]: string
Out[5]: '2019-01-03T14:53:38.596477'

In [6]: datetime.fromisoformat(string)
Out[6]: datetime.datetime(2019, 1, 3, 14, 53, 38, 596477)

关于python - SQlite3 和 python 中的日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54023269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com