SELECT WHERE日期时间大于日期(不一定是时间)

时间:2014-06-05 18:05:52

标签: c# asp.net sql sql-server

我有一个具有日期时间列的表。我希望返回日期大于输入日期的所有记录。我使用日期选择器控件作为输入日期。

换句话说,如果我的数据表只有四行,

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。

2 个答案:

答案 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()