这样的表中存储了一个日期列表。在日期列中,它计算并存储FromDate和ToDate之间的日期。
我创建了一个合并所有日期的函数,它将日期列表作为varchar值返回。
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'
它没有提供该功能所需的结果。
任何帮助都会非常感激。
答案 0 :(得分:3)
试试这个: -
如果您想查看FromDate
和ToDate
之间的日期,可以试试这个:
WHERE DATE BETWEEN FromDate and ToDate