自定义日期格式导致查询错误
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
更明确
您还应该考虑在查询中使用参数而不是字符串连接。
想知道是否有人可以解释是什么原因导致此查询在从我的 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
更明确您还应该考虑在查询中使用参数而不是字符串连接。