TSQL按日期语句搜索

时间:2014-06-07 00:24:53

标签: sql sql-server tsql

我有一个声明,我以下列格式mm/dd/yyyy

传递日期

我的查询是:

 SELECT A.[id],
           A.[subject],
           A.[description],
           A.[startTime],
           A.[endTime],
           A.[whoCreated]
   FROM   Focus_Meetings AS A
   WHERE
        (A.[startTime] = COALESCE(@meetingDate, A.[startTime]) OR
         A.[endTime]= COALESCE(@meetingDate, A.[endTime])
        )
    FOR    XML PATH ('details'), TYPE, ELEMENTS, ROOT ('root');

startTime和endTime的列都是DATETIME

如何获取查询以检查所提供的数据是否存在于其中一列中?

当我尝试提供的代码时,即使记录中包含我使用的日期,也没有返回任何内容。

2 个答案:

答案 0 :(得分:0)

如果列为DATETIME,您可能希望将@meetingDate和列投射到DATE类型,然后进行比较。您可能在日期上匹配但未按时匹配。

答案 1 :(得分:0)

这可能是由于您在@meetingDate中传递的值可能只包含Date部分,而表行中的StartTime或EndTime也可能有时间。尝试转换A.StartTime和A.EndTime,如下所示:

 Convert(varchar,A.StartTime,103) = COALESCE(@meetingDate, Convert(varchar,A.StartTime,103))