2014-09-25 68 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)