SQLite 查询的日期格式

问题描述 投票:0回答:4

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

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

它返回:

2009 年 3 月 3 日

我正在努力让它返回:

2009 年 3 月 3 日

有什么建议吗?

sqlite date
4个回答
8
投票
遗憾的是,

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


6
投票

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

如果您绝对热衷于将 UI 功能放在数据存储层中,那么这在某种程度上可以被硬塞进去,例如通过用 C 编写自己的格式化函数并将它们连接到 SQLite 中,或者经历令人难以置信的笨拙 SQL 循环,但我无法想象有任何用例值得这样做。


6
投票

月份短名称

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

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


0
投票

您可以使用以下查询来获取以下格式的日期 使用 SQLite 的 DD-Mon-YYYY

select strftime ('%d', 'now')||'-'||substr('--JanFebMarAprMayJunJulAugSepOctNovDec',strftime ('%m', 'now') * 3, 3)||'-'| |strftime('%Y', '现在') 作为日期

#SQLite

© www.soinside.com 2019 - 2024. All rights reserved.