2014-01-21 80 views
0

我有NSDate以雙格式存儲在我的sqlite表中 - 使用timeIntervalSince1970 funciton。從SQlite數據庫獲得獨特的Month-Year組合

現在我想以檢索獨特的日期combinatios像

{ 
    January 2014 
    December 2013 
    November 2013 
    December 2012 
    November 2012 
    October 2011 
} 

數據必須在有序。我怎樣才能以這種格式獲取數據?

我試圖與日期功能

SELECT date(DateInterval, '%m', '%Y') FROM MyTable 

,但沒有得到結果。

希望有所幫助:)

在此先感謝。

+0

這是對MySQL或sqlite的或兩者兼而有之? – unlimit

+0

對不起,我錯誤地添加了MySql標籤,它只在SQlite – Anand

回答

2

你在尋找類似的東西嗎?

SELECT CASE m 
     WHEN '01' THEN 'January' 
     WHEN '02' THEN 'Febuary' 
     WHEN '03' THEN 'March' 
     WHEN '04' THEN 'April' 
     WHEN '05' THEN 'May' 
     WHEN '06' THEN 'June' 
     WHEN '07' THEN 'July' 
     WHEN '08' THEN 'August' 
     WHEN '09' THEN 'September' 
     WHEN '10' THEN 'October' 
     WHEN '11' THEN 'November' 
     WHEN '12' THEN 'December' 
     END || ' ' || y AS dates 
    FROM 
(
    SELECT DISTINCT 
     strftime('%m', DateInterval, 'unixepoch') m, 
     strftime('%Y', DateInterval, 'unixepoch') y 
    FROM MyTable 
) q 
ORDER BY y DESC, m DESC 

輸出示例:

 
|   dates | 
|---------------| 
| January 2014 | 
| December 2013 | 
| November 2013 | 
| October 2013 | 

這裏是一個SQLFiddle演示

+0

感謝@peterm,得到了我一直在尋找的東西:) – Anand

0

它是MySQL,然後使用DATE_FORMAT功能在用於顯示的特定格式來獲取。

SELECT 
    date_format(DateInterval, '%M %Y') as dates 
FROM MyTable 
order by 
    date_format(DateInterval, '%Y%m') desc; 
+0

嘿@Ravinder感謝您的及時回覆,當我將您的想法應用於我的sqlite表時,它拋出錯誤,如「date_format(TransactionDateInterval,'%Y%m')desc [沒有這樣的函數:date_format]「 – Anand

+0

這是一個MySql函數。 –

+0

ohh我很抱歉親愛的,我錯誤地添加了MySqlite標記 – Anand