从SQlite数据库获得唯一的月 - 年组合

时间:2014-01-21 07:35:48

标签: ios sqlite datetime

我有NSDate以双格式存储在我的sqlite表格中 - 使用 timeIntervalSince1970 功能。

现在我想要回复像

这样的独特日期组合
{ 
    January 2014
    December 2013
    November 2013
    December 2012
    November 2012
    October 2011 
}

数据必须按排序顺序排列。如何以这种格式获取数据?

我尝试过使用日期功能

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

但没有结果。

希望有所帮助:)

先谢谢。

2 个答案:

答案 0 :(得分: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 演示

答案 1 :(得分:0)

MySQL ,然后使用DATE_FORMAT功能获取特定格式以供显示。

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