如何让sqlalchemy在sqlite中将datetime存储为julianday?

时间:2009-09-06 10:54:14

标签: sqlite sqlalchemy

我不喜欢SQLAlchemy如何使用sqlite数据库处理日期时间值。它以明文字符串格式存储值。同时sqlite建议使用julianday存储日期时间值。

有没有一种简单的方法可以在这里更改SQLAlchemy的行为?

PS。我要担心吗?可能没有人因为没有必要而与julianday打交道?

1 个答案:

答案 0 :(得分:4)

实际上,SQLAlchemy不是将日期存储为纯字符串; SQLite本身does not support date types。从一开始就明白这一点很重要; Sqlite执行provide some functions处理日期,但这些日期存储为文本。这就是为什么SQLAlchemy在将日期转换为python的datetime类型方面做了一些魔术:根据SQLAlchemy's documentation

  

SQLite没有内置DATE,   TIME或DATETIME类型和pysqlite   不提供开箱即用的功能   翻译价值的功能   Python日期时间对象和   SQLite支持的格式。 SQLAlchemy的的   自己的DateTime和相关类型提供   日期格式化和解析   使用SQlite时的功能。该   实现类是SLDateTime,   SLDate和SLTime。这些类型   表示日期和时间为ISO   格式化的字符串,也很好   支持订购。没有依赖   在这些典型的“libc”内部   功能所以历史日期是   完全支持。

至于使用朱利安历法而不是格里高利历。你确定要的吗?你的意思是格里高利日期?