我用的是Access,ADO控件和Datagrid控件,查询字段是“时间”,类型是date的全型(如2007-6-6 11:21:35),现在我通过在DTPicker控件里面设置查询时间,这个属性只设日期不设时间(2007-6-6),要查这一全天的记录,但是却显示查不到任何记录,请大家帮我看看,谢谢了!(数据库没有问题,另外一种字段查询好使)Private Sub cmdQuery_Click()
Dim a
a = DTPicker1.value
frmMain.Adodc1.CommandType = adCmdUnknown
frmMain.Adodc1.RecordSource = "Select * From 列车 Where format(时间,'yyyy-m-d')>'a'and format(时间,'yyyy-m-d')<'a+1'"
frmMain.Adodc1.Refresh
If frmMain.Adodc1.Recordset.EOF Then
MsgBox "查无此时间的记录", vbOKCancel + 32, "查询出错"
frmMain.Adodc1.RecordSource = "列车"
frmMain.Adodc1.Refresh
End If
End Sub
Dim a
a = DTPicker1.value
frmMain.Adodc1.CommandType = adCmdUnknown
frmMain.Adodc1.RecordSource = "Select * From 列车 Where format(时间,'yyyy-m-d')>'a'and format(时间,'yyyy-m-d')<'a+1'"
frmMain.Adodc1.Refresh
If frmMain.Adodc1.Recordset.EOF Then
MsgBox "查无此时间的记录", vbOKCancel + 32, "查询出错"
frmMain.Adodc1.RecordSource = "列车"
frmMain.Adodc1.Refresh
End If
End Sub
"Select * From 列车 Where format(时间,'yyyy-m-d')='2007-6-5'"
如果你a是变量的话:
"Select * From 列车 Where format(时间,'yyyy-m-d')='"& a &"'"一个时间段内的数据用><或者between
'查询时间为a的整天数据从00:00:00到24:00:00
Select * From 列车 Where 时间='a'
'查询时间大于a的整天数据从a天的00:00:00开始
Select * From 列车 Where 时间>'a'
'查询时间为时间段a到b如果a只有日期没有时间,时间部分就是00:00:00
Select * From 列车 Where 时间 between 'a' and 'b'
如果不知道access有format,那你真该晕 :)