2016-02-26 39 views
0

我有我的查詢是這樣參數在查詢使用FORMAT Funtion

WHERE (FORMAT([salesdate], "yyyy") = @year; 

然後,我添加參數@year這樣的WHERE子句:

myCommand.Parameters.Add(new OleDbParameter("@year", (year))); 

應該篩選具有記錄根據所選年份的銷售日期。但它什麼都沒有返回。我敢肯定,我的可變年份是正確的。我也確定Parameter.Add在正確的位置。

我也嘗試了相同的MS Access查詢,輸入值爲參數,然後它工作。

我在做什麼錯?

回答

1

試試這個:

WHERE DATEPART(YEAR, [salesdate]) = @year; 

有添加參數不同的方式,你可以嘗試結合DATEPART:

myCommand.Parameters.Add("@year", OleDbType.Integer).Value = year; 
+0

爲什麼參數不符合FORMAT工作? –

+1

不知道,我認爲這可能是因爲FORMAT函數返回一個字符串。 @year是什麼類型? – Juan

+0

整數。我將嘗試將其解析爲字符串 –