2013-07-17 167 views
0

如何在月份使用Informix日期數據類型選擇使用GROUP BY的記錄?像:Informix日期查詢GROUP BY月份

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

我覺得GROUP BY MONTH(my_date)是正確的,你也可以嘗試在http://sqlfiddle.com/測試你的任何查詢。 –

回答

1

的Informix機制的文檔說有MONTH() and YEAR()功能

因此查詢應該爲你

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

你可以執行這個查詢嗎?我使用了查詢,Informix表示有語法錯誤。 –

0

使用這樣的工作

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

我剛剛一直在調查這個問題。 Informix有一些奇怪的限制,其一是你不能在GROUP BY語句中直接使用與日期相關的函數。您需要在您的select語句中的'GROUP BY'輸出列之一。

以下應該解決的問題:

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