C# GridView,组合框日期范围
C# GridView, Combobox Date Range
我在 C# WinForms 中查询日期范围有问题。如果我 select 03/26/2015 作为开始日期,03/27/2015 作为两个组合框的结束日期,它仅显示 03/27/2015 的所有数据,而不显示 03/26 的数据/2015 至 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);
即使 DateTime
格式为 CustomFormat
,从 dateTimePicker.Value
传递的值将采用 DateTime
格式而不是 Date
格式。所以你需要在 SQL 查询中转换 DateTime
将解决你的问题。 (假设您已将 patients.entry_datetime
存储为 DateTime
在您的 SQL 服务器中。
所以尝试这样的 SQL 查询,
patients.entry_datetime >= CAST(@startDate AS DATE)
AND patients.entry_datetime <= CAST(@endDate AS DATE)
我在 C# WinForms 中查询日期范围有问题。如果我 select 03/26/2015 作为开始日期,03/27/2015 作为两个组合框的结束日期,它仅显示 03/27/2015 的所有数据,而不显示 03/26 的数据/2015 至 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);
即使 DateTime
格式为 CustomFormat
,从 dateTimePicker.Value
传递的值将采用 DateTime
格式而不是 Date
格式。所以你需要在 SQL 查询中转换 DateTime
将解决你的问题。 (假设您已将 patients.entry_datetime
存储为 DateTime
在您的 SQL 服务器中。
所以尝试这样的 SQL 查询,
patients.entry_datetime >= CAST(@startDate AS DATE)
AND patients.entry_datetime <= CAST(@endDate AS DATE)