標籤:
好久沒有用access,今兒遇到一個特別讓人無語的問題:
access資料表的Date/Time類型的欄位,假如欄位名為dtime:
如果直接用dtime=‘2013/9/6 10:50:21’,sql語句會報錯--》“標準運算式中資料類型不匹配”,
如果用dtime like ‘%2013/9/6 10:50:21%’,sql語句依舊會報錯--》“標準運算式中資料類型不匹配”,
網上還有哥們兒說了,日期用# #如:dtime=#2013/9/6 10:50:21%#,dtime like #2013/9/6 10:50:21%#,額,感覺不符合sql文法,還是嘗試了,依舊報錯。
那麼,說明Date/Time類型的欄位應該對應的是.net架構的DateTime類型,故,應穿進去一個DateTime類型的結構體參數,如下:
sql:……[email protected]……,參數穿進去new OleDbParameter("@dtime", xdtime),xdtime是一個DateTime類型的結構體,這應該是沒錯了吧?!
結果,如果只有一條sql語句用到Date/Time類型的欄位的話,是可以通過,並且正常啟動並執行,但是第二條,第三條……
仍舊報 “標準運算式中資料類型不匹配”,
額,問題是這樣解決的,(至今,我仍不知道原因,如果有朋友知道了為什麼要這樣做,煩請告知哈):
sql:……[email protected]……,參數穿進去new OleDbParameter("@dtime", Convert.ToDateTime(xdtime.ToString()));這樣就可以了,
也就是傳給sql的Date/Time類型的欄位的參數要先.ToString() 轉化為字串,然後Convert.ToDateTime()在轉化為DateTime結構體.
轉自:http://blog.csdn.net/lcawen88/article/details/11200155?utm_source=tuicool&utm_medium=referral
[轉]access 標準運算式中資料類型不匹配