我在C#WinForms中的日期范围查询有问题。如果我选择03/26/2015作为开始日期,将2015年3月27日作为两个组合框的结束日期,则仅显示03/27/2015的所有数据,而不显示2015年3月26日至03日的数据/ 27/2015
以下是代码:
DateTime date = DateTime.Now;
dateTimePicker.Value = date;
dateTimePicker.Format = DateTimePickerFormat.Custom;
dateTimePicker.CustomFormat = "MM/dd/yyyy";
DateTime date2 = DateTime.Now;
dateTimePicker2.Value = date2;
dateTimePicker2.Format = DateTimePickerFormat.Custom;
dateTimePicker2.CustomFormat = "MM/dd/yyyy";
SQL
patients.entry_datetime >= @startDate and patients.entry_datetime <= @endDate
cmd.Parameters.AddWithValue("@startDate", dateTimePicker.Value);
cmd.Parameters.AddWithValue("@endDate", dateTimePicker2.Value);
答案 0 :(得分:0)
即使使用DateTime
格式化的CustomFormat
格式为dateTimePicker.Value
,也会采用DateTime
格式而不是Date
格式。所以你需要在SQL查询中转换DateTime
才能解决你的问题。 (假设您已将patients.entry_datetime
存储为SQL服务器中的DateTime
。
所以尝试像这样的SQL查询,
patients.entry_datetime >= CAST(@startDate AS DATE)
AND patients.entry_datetime <= CAST(@endDate AS DATE)