2012-07-22 68 views
0

如何根據安裝在Windows Server 2008 R2上的SQL Server 2005 Express中的DateTime查詢行?在SQL Server 2005 Express中查詢日期時間

我有根據從和到日期值選擇行的代碼。它在我的Windows 7系統中工作。但是,它不工作在Windows Server 2008 R2的...任何幫助

this.filterreportTableAdapter.FillBy(this.cRdataset.filterreport_datatable, fromdate, todate); 

和我的SQL查詢

SELECT * 
FROM tablename 
WHERE DATE BETWEEN @fromdate and @todate 
+1

什麼數據類型是你的'DATE'列? (這是一個非常糟糕的**列名,順便說一句 - 因爲它是2008版及以後的數據類型)。你從** @datedate和@ @ todate'傳入了什麼**值** – 2012-07-22 07:52:05

回答

1

這聽起來像日期/時間值作爲字符串傳遞。這總是一個壞主意,格式問題比比皆是。這裏最好的方法很簡單:使用正確類型的參數。如果客戶端和服務器都知道它是DateTime,那麼它將作爲原始值傳遞,而不是字符串 - 因此不存在格式問題。

確保在C#fromdatetodateDateTime,那@fromdate@todatetablename.DATE在TSQL是datetime

0

請設置日期時間格式相同,您的Windows 7的一個例如:dd/MM/yyyy

0

看來您在傳遞日期參數時出現日期格式錯誤。 有兩種解決方法: 首先,你可以嘗試使用日期格式作品無處不是: YYYYMMDD例如:20120722. 另一種解決方案是使DateDiff的SQL查詢 最佳方面

+1

或* actual *解決方案...使用輸入參數,這些參數不受格式化問題的影響。 – 2012-07-22 08:13:50