【发布时间】:2016-11-12 03:11:14
【问题描述】:
我试图根据用户检查的两个日期来获得结果。 我有两个 datetimepicker 控件。 我希望用户选择“从”日期和“到”日期, 然后查询得到具体的结果。
leaving_time 列类型为 nvarchar
这是我的查询:
SELECT name, mil_no, rotba, arrival_time, leaving_time, day, year
FROM dbo.Hodor_data
WHERE leaving_time BETWEEN '"+dateTimePicker1.Checked.ToString()+ "' AND '" + dateTimePicker2.Checked.ToString() + '"
错在哪里?
【问题讨论】:
-
使用参数化查询。
-
您遇到了什么错误?如果没有错误显示示例数据
-
那么您将很难找到日期。如果您希望有机会对这些值执行查询,则应将日期存储在 DateTime 列中。
-
我不知道您如何将这些日期存储在 varchar 列中,但是为了解释问题,假设您使用 dd-MM-yyyy 格式。现在你的离开时间是“01-07-2016”,转换为字符串的两个选择器值是“15-04-2016”和“15-07-2016”。 leave_time 不包括在此期间,因为按字母顺序,字母 '0' 位于 '1' 之前。日期应该被使用和存储为日期(在内部它们有一个数字表示,可以排除任何可能的误解)