SELECT WHERE date time > day(不一定是time)

本文关键字:time 不一定 WHERE date SELECT day | 更新日期: 2023-09-27 18:06:51

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

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

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 FromDate = dateTimePickerFromDate.ToString()

在我的select方法中,我有:

if (fromDate != null)
{
    return GetSQLDataSet(" [employeeKnownAs]  + ' ' +[employeeLastName] AS 'empName', [InsertDate]", "EmpData", "", "EmpData.InsertDate >= " + fromDate.ToString(), "InsertDate ASC", DbConnect.myDataConnection);

不幸的是,无论我从dateTimePicker中选择哪个日期,它都会返回null。

SELECT WHERE date time > day(不一定是time)

所以你需要将datetime转换为正确的字符串?

string FromDate = dateTimePickerFromDate.ToString("yyyy-MM-dd")

你的DatePicker无论如何只返回日期部分,正如你在你的帖子my DatePicker control has input of 2014-06-03中提到的。因此,您必须在SQL查询中将SQL DATETIME值CAST为DATE。你的查询应该看起来像

select 
[employeeKnownAs],
[employeeLastName] AS 'empName', 
[InsertDate]
from EmpData
where cast(InsertDate as DATE) >=  fromDate.ToString()

您也可以使用SQL SERVER CONVERT()函数,样式格式为101,如

CONVERT(VARCHAR,InsertDate,101) >= fromDate.ToString()