DTPICKER控件查询ACCESS数据库时间,提示数据类型不符和
用这个语句来查询ACCESS数据库,但提示数据类型不符合:
cmd.CommandText = "select * from abc where z between #" & CDate(DTPicker1.Value) & " " & CDate(DTPicker2.Value) & "# and #" & CDate(DTPicker3.Value) & " " & CDate(DTPicker4.Value) & "#"
其中,DTPICKER控件已经设这为这样的格式:
DTPicker1.Format = dtpCustom
DTPicker2.Format = dtpCustom
DTPicker1.CustomFormat = "yyyy-MM-dd "
DTPicker2.CustomFormat = "tt:HH:mm:ss"
DTPicker3.Format = dtpCustom
DTPicker4.Format = dtpCustom
DTPicker3.CustomFormat = "yyyy-MM-dd "
DTPicker4.CustomFormat = "tt:HH:mm:ss"
但是每次都提示错误,DTPICKER 2和4的数值不是时间型的,而是一个日期2012-12-18,这是为什么?
[解决办法]
cmd.CommandText = "select * from abc where z between #" & Format(DTPicker1.Value, "yyyy-mm-dd") & " " & Format(DTPicker2.Value, "HH:nn:ss") & "# and #" & Format(DTPicker3.Value, "yyyy-mm-dd") & " " & Format(DTPicker4.Value, "HH:nn:ss") & "#"
你必须把控件的值格式化成字符串。注意,你的 DTP 控件中设置的是它的显示方式。在代码中的赋值语句所传递的,还是一个 Double 数字(DateTime 类型)。