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)