1

更改 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)。提前致谢。非常感谢您的帮助。

4

1 回答 1

1

简短的回答:

如果您有一个文本字符串存储为"12/10/11"您希望报告为"12-10-11",您应该使用该replace(X,Y,Z)函数将出现的YinX替换为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 回答