检查给定日期是否在varchar日期列表中

时间:2017-03-09 09:43:04

标签: sql sql-server date

这样的表中存储了一个日期列表。在日期列中,它计算并存储FromDate和ToDate之间的日期。

enter image description here

我创建了一个合并所有日期的函数,它将日期列表作为varchar值返回。

enter image description here

DECLARE @s VARCHAR(MAX)

Select @s=COALESCE(@s + ',','')+LeaveDates
from LeaveRequest where EmpId=1154  
and Date >= DATEADD(month, -5, GETDATE())

IF '10-03-2017' in (@s) 
print 'Yes'
else 
print 'No'
print @s

结果

没有

' 19-10-2016',' 08-03-2017',' 09-03-2017',' 10-03- 2017',' 11-03-2017'

DECLARE @s VARCHAR(MAX)

Select @s=COALESCE(@s + ',','')+LeaveDates
from LeaveRequest where EmpId=1154  
and Date >= DATEADD(month, -5, GETDATE())

IF '10-03-2017' in ('19-10-2016','08-03-2017', '09-03-2017', '10-03-2017', '11-03-2017') 
print 'Yes'
else 
print 'No'
print @s

结果

' 19-10-2016',' 08-03-2017',' 09-03-2017',' 10-03- 2017',' 11-03-2017'

它没有提供该功能所需的结果。

任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:3)

试试这个: -

如果您想查看FromDateToDate之间的日期,可以试试这个:

 WHERE DATE BETWEEN FromDate and ToDate