2014-01-21 44 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