更改 sqlite db 中的此日期格式12/10/11 to 12-10-11 (mm-dd-yy)
我无法这样做。我是 sqlite 中的菜鸟,必须解析此值SELECT strftime('%d-%m-%Y',Date) from report
,但我得到 null,因为 sqlite db 中的值除外,mm-dd-yy
所以如何转换格式12/10/11 to 12-10-11 (mm-dd-yy)
。提前致谢。非常感谢您的帮助。
问问题
3228 次
1 回答
1
简短的回答:
如果您有一个文本字符串存储为"12/10/11"
您希望报告为"12-10-11"
,您应该使用该replace(X,Y,Z)
函数将出现的Y
inX
替换为Z
。因此:
SELECT replace('12/24/11','/','-');
将返回:
12-10-11
长答案:
首先,日期实际上并不作为 SQLite 中的正确数据类型存在。它们存储为 TEXT、REAL 或 INTEGER 值。请参阅SQLite 中的日期和时间数据类型。所以这取决于你的日期是如何存储在数据库中的。
其次,您似乎暗示您以“ mm/dd/yy
”格式存储日期。这不是TEXT
存储日期/时间值的有效/有用格式(因为日期无法排序,不能用于“大于”和“小于”操作,不能用于 SQLite 日期函数等)。您确实希望以日期和时间函数文档的“时间字符串”部分中列出的格式之一存储日期时间值。
因此,通常您应该以其中一种格式存储您的日期/时间值,在您从数据库中检索它时NSDateFormatter
将其转换为 a 。NSDate
当您想在应用程序中显示日期值时,请使用您想要的任何输出格式。
但是,如果您不关心日期存储为文本字符串并且不能有效地用作 SQLite 中的日期,那么只需将其视为普通的旧TEXT
字符串并使用TEXT
函数,例如replace(X,Y,Z)
替换出现的"/"
with "-"
,如上所述.
于 2012-12-24T14:47:28.790 回答