我有一个具有日期时间列的表。我希望返回日期大于输入日期的所有记录。我使用日期选择器控件作为输入日期。
换句话说,如果我的数据表只有四行,
2014-04-23 10:40:27.592 Abby
2014-05-23 09:40:27.592 Bobby
2014-06-01 08:53:59.320 Cathy
2014-06-05 08:53:59.320 Debbie
当我的DatePicker控件输入 2014-06-03 时,输出应为:
2014-06-05 08:53:59.320 Debbie
在调用select方法之前,将dateTimePicker Control的值转换为string。
string FromDate = dateTimePickerFromDate.ToString()
在我的选择方法中,我有:
if (fromDate != null)
{
return GetSQLDataSet(" [employeeKnownAs] + ' ' +[employeeLastName] AS 'empName', [InsertDate]", "EmpData", "", "EmpData.InsertDate >= " + fromDate.ToString(), "InsertDate ASC", DbConnect.myDataConnection);
不幸的是,无论我从dateTimePicker选择什么日期,它都会返回null。
答案 0 :(得分:1)
所以你需要将datetime转换成正确的字符串吗?
string FromDate = dateTimePickerFromDate.ToString("yyyy-MM-dd")
答案 1 :(得分:0)
您的DatePicker无论如何都只返回您在帖子my DatePicker control has input of 2014-06-03
中提到的DATE部分。因此,您必须在SQL查询中将{DIDTIME值CAST
设置为DATE。您的查询应该类似于
select
[employeeKnownAs],
[employeeLastName] AS 'empName',
[InsertDate]
from EmpData
where cast(InsertDate as DATE) >= fromDate.ToString()
您也可以使用样式格式为CONVERT()
的SQL SERVER 101
函数
CONVERT(VARCHAR,InsertDate,101) >= fromDate.ToString()