我正在使用我的VB.Net程序在MS Access中查询数据库。在数据库中,我有一个包含“question_start”(日期/时间)字段的表。
我想返回在我的VB程序中选择的日期之后或之后发生的每条记录的ID。
Access表中的数据以通用日期格式存储为日期/时间(例如'10 / 10/2016 15:48:01')。
在VB.NEt中,我使用DateTimePicker对象来选择日期。
以下是我用来恢复开始日期为10/10/2016(2016年10月10日)的所有记录的代码。
(注1:我已从此特定搜索中删除了时间元素,因为我不需要我的结果在此处具有时间敏感性,但稍后需要。)
Private Sub btnDateText_Click(sender As Object, e As EventArgs) Handles btnDateText.Click
Dim dt_QuestionDate As New DataTable()
dt_QuestionDate = getData("SELECT question_id
FROM tblQuestion
WHERE question_start => " & dtDateText.Value.ToString("dd-MM-yyyy") & ""
)
lstDateText.DataSource = dt_QuestionDate
lstDateText.DisplayMember = "question_id"
lstDateText.ValueMember = "question_id"
End Sub
**我的数据库中有记录应该返回,但我目前没有收到任何值。我不确定是不是我写了WHERE子句(我用“=>”,“> =”和“=”完成了WHERE)但是我没有收到10 /的记录二千零十六分之十。
有任何想法吗?我不知道是不是因为这是一个简单的错误,还是因为存储在Access中的时间元素?
答案 0 :(得分:0)
您需要正确格式化日期值的字符串表达式:
WHERE question_start => #" & dtDateText.Value.ToString("yyyy'/'MM'/'dd") & "#"