我有一个声明,我以下列格式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
如何获取查询以检查所提供的数据是否存在于其中一列中?
当我尝试提供的代码时,即使记录中包含我使用的日期,也没有返回任何内容。
答案 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))