我想從我的數據庫中獲取記錄,這是在ms訪問中創建的2013年6月3日。日期都存儲在DD/MM/YYYY的格式,下面是我的查詢訪問mdb日期/時間問題
AND (a.Date = #" + date + "#)) order by e.E_ID asc
但令人驚奇的是我已經插在的2013年3月6日日的記錄是今天的日期,而需要它作爲2013年3月6日,我糾正了我的區域設置,仍然是同樣的問題。同樣在我的查詢中,我正在查詢匹配日期,我正在使用dd/MM/yyyy。這是微軟的錯誤嗎?請幫助
我想從我的數據庫中獲取記錄,這是在ms訪問中創建的2013年6月3日。日期都存儲在DD/MM/YYYY的格式,下面是我的查詢訪問mdb日期/時間問題
AND (a.Date = #" + date + "#)) order by e.E_ID asc
但令人驚奇的是我已經插在的2013年3月6日日的記錄是今天的日期,而需要它作爲2013年3月6日,我糾正了我的區域設置,仍然是同樣的問題。同樣在我的查詢中,我正在查詢匹配日期,我正在使用dd/MM/yyyy。這是微軟的錯誤嗎?請幫助
日期都存儲在DD/MM/YYYY
的,我懷疑他們是不是格式。我懷疑它們以某種本地日期/時間格式存儲,無疑比10個字符的字符串更有效。 (例如,假設您使用的是適當的字段類型而不是varchar)。區分數據的固有特性和「轉換爲文本時的顯示方式」很重要。
但令人驚奇的
我不認爲這是驚人的。我認爲這是不必要地使用字符串轉換的完美結果。他們幾乎總是咬你。你不是想表示一個字符串 - 你想表示一個日期。所以儘可能使用這種類型。
您應該:
DateTime
,從而避免了串轉換哪個供應商類型,你正在使用您還沒有指定 - 我的猜測是OleDbConnection
等等。通常,如果您查看相關命令類的Parameters
屬性的文檔,您會發現一個合適的示例。例如,OleDbCommand.Parameters
顯示OleDbConnection
上的參數化查詢。有一兩件事值得的文檔指出:
的OLE DB .NET提供程序不支持命名參數,將參數傳遞到SQL語句或由
OleDbCommand
調用時CommandType
設置爲Text
存儲過程。在這種情況下,必須使用問號(?
)佔位符。 [...] 因此,將OleDbParameter
對象添加到OleDbParameterCollection
的順序必須直接對應於命令文本中參數的問號佔位符的位置。
毫無疑問,我得到的最佳答案.... – greatmajestics