2014-09-25 44 views
0

我想在sqlite中将“20100101”的日期格式更改为“2010-01-01”。如何更改sqlite的时间格式?

SELECT strftime('%Y-%m-%d','20100101'); 

但产量5032-02-09,我怎样才能得到2010-01-01使用SQLite命令?

+0

这(“20100101”)不是一个有效的SQLite的日期字符串。 SQLite没有'datetime'数据类型,并使用字符串来存储标准的'yyyy-mm-dd'格式日期。这里解释:[www.sqlite.org/lang_datefunc](http://www.sqlite.org/lang_datefunc.html)。 – 2014-09-25 04:49:15

+0

sqlite中的所有数据已经​​以'yyyymmdd'的形式出现,我如何将它更改为'yyyy-mm-dd'? – luofeiyu 2014-09-25 05:42:59

+0

把它看作一个字符串,而不是把它放在正确的格式中。它只是对子串进行字符串操作并用破折号进行分析。看到这里的手册,它有一个可以做你想做的事情的例子:[在SQLite中使用字符串](http://sqlite.awardspace.info/syntax/sqlitepg08.htm)。 – 2014-09-25 06:45:38

回答

0

只要字符串不在SQLite's supported date formats之一中,就不能使用内置的date functions

你必须使用普通的字符串操作:提取领域,并在它们之间插入连字符:

SELECT substr(MyDate, 1, 4) || '-' || 
     substr(MyDate, 5, 2) || '-' || 
     substr(MyDate, 7, 2) 
FROM (SELECT '20100101' AS MyDate)