更改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)
。谢谢。真的很感激帮助。
答案 0 :(得分:1)
答案简短:
如果您要将文本字符串存储为"12/10/11"
,并且要报告为"12-10-11"
,则应使用replace(X,Y,Z)
函数替换Y
中X
的出现次数Z
1}}与SELECT replace('12/24/11','/','-');
。因此:
12-10-11
将返回:
mm/dd/yy
答案很长:
首先,日期实际上并不作为SQLite中的正确数据类型存在。它们存储为TEXT,REAL或INTEGER值。见date and time datatype in SQLite。所以这取决于你的日期在数据库中的存储方式。
其次,您似乎暗示您以“TEXT
”格式存储日期。这不是一个有效/有用的NSDateFormatter
格式来存储日期/时间值(因为日期无法排序,不能在“大于”和“小于”操作中使用,不能在SQLite日期函数中使用,等等)。您确实希望以date and time functions文档的“时间字符串”部分中列出的格式之一存储日期时间值。
因此,通常您应该将日期/时间值存储为其中一种格式,当您从数据库中检索时,使用NSDate
将其转换为TEXT
。当您想在应用程序中显示日期值时,请使用您想要输出的任何格式。
但是,如果您不关心日期是否存储为文本字符串并且无法在SQLite中有效地用作日期,那么只需将其视为普通的TEXT
字符串并使用replace(X,Y,Z)
如上所述,"/"
等函数用"-"
替换{{1}}的出现次数。