SQL如何在日期差异中排除银行假期和圣诞节

时间:2018-06-30 10:15:25

标签: sql-server tsql date-difference

任何建议将不胜感激 如何在英国datediff中排除银行假期,圣诞节

我有一个客户表,其中包含所有在酒店的客户预订,我想计算停留时间,但是我想排除英国的银行假期和其他假期。

非常感谢

SELECT  [StartDate],
DATEDIFF(DAY,[StartDate],[EndDate]) AS Bookingdays    
      ,[EndDate]
      ,[CustomerId]
      ,[BookingID]
  FROM [CustomerBooking]

1 个答案:

答案 0 :(得分:0)

要实现此目的,您将需要一个HolidayCalendar表,其中将列出所有假日日期和圣诞节。

使用该日历表过滤您的预订日期WHERE StartDate NOT IN (SELECT HolidayDate from HolidayCalendar) OR EndDate NOT IN (SELECT HolidayDate from HolidayCalendar)

您可以使用JOINS或CTE以及其他更优化的查询,通过其他多种方式过滤日期。上面的代码只是一个例子。