Informix日期查询GROUP BY Month

时间:2013-07-17 07:02:01

标签: sql date datetime group-by informix

如何在月份上使用GROUP BY在Informix Date数据类型上选择记录?像:

SELECT COUNT(*)
FROM db_table
WHERE my_date.year = 2012
GROUP BY my_date.month

我可以这样使用吗?

GROUP BY MONTH(my_date)

我不知道Informix中是否存在此函数。目前我无法访问服务器进行验证。

顺便说一句,我使用的是旧版本,版本10.在版本的文档中,它描述了以下时间函数:

You can use the time functions DAY, MDY, MONTH, WEEKDAY, and YEAR in either the projection clause or the WHERE clause of a query.

似乎我不能在GROUP BY上使用MONTH功能。有没有解决方案?

3 个答案:

答案 0 :(得分:2)

我刚刚调查过这个问题。 Informix有一些奇怪的限制,一个是你不能在GROUP BY语句中直接使用与日期相关的函数。您需要在SELECT语句中的“GROUP BY”输出列之一。

以下内容应解决问题:

SELECT MONTH(my_date), COUNT(*)
 FROM db_table
 WHERE YEAR(my_date) = '2012'
 GROUP BY 1

答案 1 :(得分:1)

Informix文档说明有MONTH() and YEAR()个函数

因此,您的查询应该适合您

SELECT COUNT(*)
  FROM db_table
 WHERE YEAR(my_date) = 2012
 GROUP BY MONTH(my_date)

答案 2 :(得分:0)

像这样使用

SELECT COUNT(*)
  FROM db_table
 WHERE YEAR(my_date) = '2012'
 GROUP BY MONTH(my_date)