从SQLite查询格式日期

问题描述:

我想从我的SQLite数据库拉和格式化时间戳。在我的阅读中,与PHP可用的日期格式转换相比,SQLite格式似乎非常有限。我有这个疑问从JavaScript来:从SQLite查询格式日期

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

,并返回:

03 03 2009年

我试图让它返回:

月3日, 2009

有什么建议吗?

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

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

如果您非常想在数据存储层中错误地使用UI功能,那么这可能会在某种程度上被阻塞,通过在C语言中编写自己的格式化函数并将它们连接到SQLite中,或者经历令人难以置信的笨拙的SQL旋转,但我无法想象任何用例都值得费心。

+3

如果我的表示层是来自SQL语句输出的文本文件,该怎么办?这是一个非常基本的需求,而悲伤的SQLLite不支持开箱即用。然而,鉴于它的目标,以及它是多么精简,我可以接受这个错过的功能,它只是很臭。 – Kuberchaun 2011-11-02 17:41:41

短月份名称

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)) 

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