我正在尝试从我的SQLite数据库中提取和格式化时间戳。在我的阅读中,与PHP可用的日期格式转换相比,SQLite格式似乎非常有限。我的查询来自javascript:
SELECT strftime('%m %d, %Y', timestamp) AS saveddate
它返回:
03 03,2009
我想让它回来:
2009年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))
破折号仅用于在页面上清除。用空格替换它们。