如何在月份上使用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功能。有没有解决方案?
答案 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)