2017-03-09 127 views
0

存在像这样的表格中的日期列表。在日期列中,它计算并存储FromDate和ToDate之间的日期。检查给定的日期是否在varchar日期列表中

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' , '2017年8月3日','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' , '2017年8月3日','09 -03-2017' ,'10 -03-2017' ,'11 -03-2017 '

它没有给出该功能所需的结果。

任何帮助将非常感激。

+0

那岂不是更容易检查日期是没有fromdate和todate之间? – Linkan

+0

如何编写查询?我无法找到一种方式..这就是为什么我这样试图.. –

+0

你需要什么结果? –

回答

3

试试这个: -

如果你想检查FromDate之间的日期ToDate你可以试试这个:

WHERE DATE BETWEEN FromDate and ToDate 
相关问题