从按年份排序的数据库中获取记录>月份>天

时间:2014-04-29 07:22:56

标签: activerecord ruby-on-rails-4

我有一个Item型号。

数据库中有许多记录,其中填写了列created_at。 我想生成一个具有这种层次结构的视图:

2014
  December
    31
      items here
    30
      items here
    29
      items here
    ...
  November
    31
    ...
  ...
2013
  ...

最优雅的方式是什么?

编辑:非常感谢您的查询。我如何在Ruby on Rails中使用它?

2 个答案:

答案 0 :(得分:0)

为实现这一目标,我们将按日期部分订购记录。下面的示例查询

SELECT 
      ItemDescription,
      Year(DateField) AS Year,
      Datename(mm, DateField) AS Month,
      Day(DateField) AS Day
FROM tblName
ORDER BY
      Year(DateField) DESC,
      Month(DateField) DESC,
      Day(DateField) DESC

这将按预期的顺序为您提供数据。现在,您可以创建存储过程以将输出修改为所需的格式。

答案 1 :(得分:0)

  SELECT DATEPART(Year, PaymentDate) Year, DATEPART(Month, PaymentDate) Month,    DATEPART(day, PaymentDate) Day,item_name
    FROM Payments
    GROUP BY DATEPART(Year, PaymentDate), DATEPART(Month, PaymentDate),DATEPART(day, PaymentDate) desc
    ORDER BY Year, Month,day