SQLite查询的日期格式

时间:2009-07-25 03:37:36

标签: sqlite date

我正在尝试从我的SQLite数据库中提取和格式化时间戳。在我的阅读中,与PHP可用的日期格式转换相比,SQLite格式似乎非常有限。我的查询来自javascript:

SELECT strftime('%m %d, %Y', timestamp) AS saveddate

它返回:

03 03,2009

我想让它回来:

2009年3月3日

有什么建议吗?

3 个答案:

答案 0 :(得分:7)

SQLite does not support month names,遗憾的是。您必须使用查找表,case语句或表示层上的开关将其转换为月份名称。

答案 1 :(得分:6)

SQLite专注于属于数据存储层的功能,而不是属于用户界面中的功能,例如使用月份名称等格式化日期,这是绝对正确的。我强烈建议您将此作为一个非常有用的提示,将各种功能保持在适当的层中! - 。)。

如果您非常希望在数据存储层中错放UI功能,那么这在某种程度上可能会受到影响,例如:通过在C语言中编写自己的格式化函数并在SQLite中将它们连接起来,或者经历令人难以置信的笨拙SQL旋转,但我无法想象任何值得打扰的用例。

答案 2 :(得分:4)

短月名

substr ("--JanFebMarAprMayJunJulAugSepOctNovDec", strftime ("%m", thedate) * 3, 3)

完整月份名称

rtrim (substr ("January--February-March----April----May------June-----July-----August---SeptemberOctober--November-December", strftime ("%m", thedate) * 9 - 8, 9))

破折号仅用于在页面上清除。用空格替换它们。