当前位置: 首页 > 面试题库 >

如何从SQLite中从sqlite读取日期时间而不是Python中的字符串?

康元凯
2023-03-14
问题内容

我在Python
2.6.4中使用sqlite3模块将日期时间存储在SQLite数据库中。插入它非常容易,因为sqlite自动将日期转换为字符串。问题是,读取时它以字符串形式返回,但是我需要重建原始的datetime对象。我该怎么做呢?


问题答案:

如果用时间戳记类型声明列,那么您将处于三叶草中:

>>> db = sqlite3.connect(':memory:', detect_types=sqlite3.PARSE_DECLTYPES)
>>> c = db.cursor()
>>> c.execute('create table foo (bar integer, baz timestamp)')
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('insert into foo values(?, ?)', (23, datetime.datetime.now()))
<sqlite3.Cursor object at 0x40fc50>
>>> c.execute('select * from foo')
<sqlite3.Cursor object at 0x40fc50>
>>> c.fetchall()
[(23, datetime.datetime(2009, 12, 1, 19, 31, 1, 40113))]

看到?int(对于声明为整数的列而言)和datetime(对于声明为timestamp的列而言)都将保留类型为原样的往返。



 类似资料:
  • 主要内容:时间字符串,修饰符(Modifier),格式化,实例SQLite 支持以下五个日期和时间函数: 序号 函数 实例 1 date(timestring, modifier, modifier, ...) 以 YYYY-MM-DD 格式返回日期。 2 time(timestring, modifier, modifier, ...) 以 HH:MM:SS 格式返回时间。 3 datetime(timestring, modifier, modifier

  • 问题内容: 我有一个日期字符串,想要将其转换为日期类型: 我尝试将datetime.datetime.strptime与所需的格式一起使用,但它会返回转换时间。 这是输出返回的内容: 我需要删除时间:00:00:00。 问题答案: 您想要的是datetime.date对象。您拥有的是一个datetime.datetime对象。您可以按照以上说明进行打印时更改对象,或者在创建对象时执行以下操作:

  • 问题内容: 我有一个类似的字符串 。我想将该字符串拆分为单独的变量,例如 这可能吗?如果是这样,我该怎么办? 问题答案: 一种方法是将其解析为日期对象,然后重新格式化: 如果您只想将其切成日期时间片段,只需使用split来获取片段 要么

  • 我有一个SQLite数据库,我在其中根据给定日期从所有列获取数据,例如。2018年9月30日。在COL2中,我以相同的格式保存日期。 但是现在COL2不再有2018年9月30日这样的日期格式了。因为我已经决定在第二栏中加入数据输入时间。 所以我把COL2保存为“EEE MMM dd HH:mm:ss Z yyyy”这种格式。但是我愿意将我的“EEE MMM dd HH:mm:ss Z yyyy”格

  • 我在时间序列日期-时间解析函数中收到错误。数据已附加。我尝试这样读取日期和时间列。

  • 问题内容: 我正在研究一个数据仓库项目,并且想知道如何(最好在数据流中的“派生列”组件中)从SQL日期时间记录中删除日期。 将日期时间转换为时间后,我将对时间进行查询,以在时间维度表中找到相关的时间记录。 有人可以给我一个简单的函数,以在派生的列转换中完成此操作吗? 示例:将日期时间(例如“ 12/02/2008 11:32:21 AM”)转换为简单的“ 11:32:21 AM”。 问题答案: 我