我不喜欢SQLAlchemy如何使用sqlite数据库处理日期时间值。它以明文字符串格式存储值。同时sqlite建议使用julianday存储日期时间值。
有没有一种简单的方法可以在这里更改SQLAlchemy的行为?
PS。我要担心吗?可能没有人因为没有必要而与julianday打交道?
答案 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”内部 功能所以历史日期是 完全支持。
至于使用朱利安历法而不是格里高利历。你确定要的吗?你的意思是格里高利日期?