在sqlite中更改date格式

更改date格式这是在sqlite数据库12/10/11 to 12-10-11 (mm-dd-yy)我无法这样做。我是一个noob在sqlite中,必须parsing此值SELECT strftime('%d-%m-%Y',Date) from report但我越来越null作为sqlite数据库除了价值在mm-dd-yy所以如何转换格式12/10/11 to 12-10-11 (mm-dd-yy) 。预先感谢。真的很感谢帮助。

简短的回答:

如果您有一个存储为"12/10/11"的文本string,您希望报告为"12-10-11" ,则应该使用replace(X,Y,Z)函数来replaceX出现的Y Z 从而:

 SELECT replace('12/24/11','/','-'); 

将返回:

 12-10-11 

漫长的回答:

首先,date在SQLite中并不是真正的数据types。 它们存储为TEXT,REAL或INTEGER值。 在SQLite中查看date和时间数据types 。 所以这取决于你的date如何存储在数据库中。

其次,您似乎暗示以“ mm/dd/yy ”格式存储date。 这不是一个有效/有用的TEXT格式来存储date/时间值(因为date不能sorting,不能用于“大于”和“小于”的操作,不能用于SQLitedate函数等)。 您确实需要使用date和时间函数文档的“时间string”部分中列出的格式之一来存储date时间值。

所以,通常你应该把你的date/时间值存储为这些格式中的一种,使用NSDateFormatter将其转换为NSDate 。 而当你想在你的应用程序中显示date值,使用任何你想要的输出格式。

但是,如果你不关心date存储为文本string,并且在SQLite中不能有效地用作date,那么就把它当作普通的旧的TEXTstring,并使用TEXT函数,比如replace(X,Y,Z)"-"replace"/"出现,如上所述。