自定义日期格式导致查询错误

时间:2015-03-16 14:55:16

标签: vb.net ms-access-2013

想知道是否有人可以解释在从我的datetimepicker表单获取信息时导致此查询返回错误数据的原因

在表单加载时,会发生以下命令

Private Sub frm_3_viewincident_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'clears the start date dtp box
    dtp_startdate.Visible = True
    dtp_startdate.Format = DateTimePickerFormat.Custom
    dtp_startdate.CustomFormat = " "
end sub

这使得datetimepicker按预期为空白

当值改变时,我发出以下命令

Private Sub dtp_startdate_ValueChanged(sender As Object, e As EventArgs) Handles dtp_startdate.ValueChanged
    'changes format to dd/mm/yyyy
    dtp_startdate.Format = DateTimePickerFormat.Custom
    dtp_startdate.CustomFormat = "dd/MM/yyyy"
End Sub

然后,这会将所选日期显示为15/10/2014。现在,如果我输入2015年3月1日的日期为2015年3月1日并运行以下查询

select * from incident where [incident date] > #" & dtp_startdate.Text & "#

而不是从3月1日起返回任何结果,而是从1月3日开始返回所有结果。数据库采用短日期格式dd / mm / yyyy与dtp格式相同,所以我不确定是什么造成的。有人可以建议吗?

1 个答案:

答案 0 :(得分:1)

尝试使用

"select * from incident where [incident date] > #" & dtp_startdate.Value.ToString("yyyy-MM-dd") & "# "

因为这个日期格式比dd / MM / yyyy或MM / dd / yyyy

更不明确

您还应该考虑在查询中使用参数而不是字符串连接。