SQLite查询的日期格式

Doc*_*ken 7 sqlite date

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

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

它返回:

03 03,2009

我想让它回来:

2009年3月3日

有什么建议?

Eri*_*ric 7

遗憾的是,SQLite 不支持月份名称.您必须使用查找表,case语句或表示层上的开关将其转换为月份名称.


Ale*_*lli 6

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

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

  • 如果我的表示层是来自SQL语句输出的文本文件怎么办?这是一个非常基本的需求,而且令人遗憾的是SQLLite不支持开箱即用.然而,鉴于它的目标和精简程度,我可以接受这个错过的功能,它只是很臭. (3认同)

小智 6

简短的月份名称

substr ("--JanFebMarAprMayJunJulAugSepOctNovDec", strftime ("%m", thedate) * 3, 3)
Run Code Online (Sandbox Code Playgroud)

完整的月份名称

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

破折号仅用于在页面使其清晰。将它们替换为空格