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

custom date format causing query error

想知道是否有人可以解释是什么原因导致此查询在从我的 datetimepicker 表单中获取信息时 return 不正确的数据

在表单加载时执行以下命令

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

这会使日期时间选择器按预期留空,

更改值后,我会执行以下命令

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 日作为 01/03/2015 和 运行 以下查询

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

不是 return 从 3 月 1 日开始的所有结果,而是 return 从 1 月 3 日开始的所有结果。数据库采用与 dtp 格式相同的短日期格式 dd/mm/yyyy,所以我不确定是什么原因造成的。谁能给点建议?

尝试使用

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

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

更明确

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