【问题标题】:SELECT WHERE date time greater than day (and not necessarily time)SELECT WHERE 日期时间大于天(不一定是时间)
【发布时间】:2014-06-05 18:05: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控件的值转换为字符串。

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。

【问题讨论】:

  • 您想要针对 SQL/C# 的建议?
  • 是的,C# 将是最佳选择。
  • 你的 DatePicker 无论如何只返回 DATE 部分。因此,您必须在 SQL 查询中将您的 SQL DATETIME 值转换为 DATE。
  • 我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
  • 您可能想查看发送到 SQL Server 的实际查询。

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


【解决方案1】:

所以你需要将日期时间转换成正确的字符串?

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

【讨论】:

    【解决方案2】:

    无论如何,您的 DatePicker 只会返回您在帖子 my DatePicker control has input of 2014-06-03 中提到的 DATE 部分。因此,您必须在 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()
    

    【讨论】:

    • 我想我明白你的想法。按照您的建议尝试了下面的代码,但它仍然返回 null。编译器错误提示“',' 附近的语法不正确。” , 我的代码如下:return GetSQLDataSet("[employeeKnownAs] + ' ' + [employeeLastName] AS 'empName', [InsertDate]", "EmpData", "", "CAST(InsertDate AS DATE) = " + fromDate, "InsertDate ASC", DbConnect.MyDataConnection); fromDate 本身就是字符串,所以不需要将其转换为字符串
    • @CherylGuo,编译器错误等都需要你自己处理;帮不上忙。根据您的帖子;问题是特定于 SQL 的,已得到解答,如果您在 SSMS 中按原样在 myanswer 中运行查询,它将正常工作。
    猜你喜欢
    • 2016-08-01
    • 2012-12-15
    • 2015-12-15
    • 1970-01-01
    • 2013-10-22
    • 2013-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-08
    相关资源
    最近更新 更多