根据t sql表中的日期范围检查日期

时间:2015-08-28 09:25:58

标签: tsql sql-server-2008-r2

我有一张包含我们在英国的公众假期的表格。我希望能够根据这些日期检查给定日期,如果在此表中找到日期,那么我可以执行一些计算。这是我到目前为止所拥有的。我需要一个while循环来检查@date的每个日期吗?

declare @publicHoliday  date;
set @publicHoliday = (Select [HolidayDate] from [table].[dbo].[Holidays]);

if(@date) = @publicHoliday

-- If found then do some calculation stuff

2 个答案:

答案 0 :(得分:2)

您应该使用 IN

if(@date IN (Select [HolidayDate] from [table].[dbo].[Holidays])) THEN
-- Do your calculation stuff

小心日期格式。必须 DATE ,否则您也会比较时间。

答案 1 :(得分:1)

如果您想检查@Date是否为公众假期,请尝试:

if exists(Select [HolidayDate] from [table].[dbo].[Holidays] where holidaydate = @date)

-- If found then do some calculation stuff