日期范围之间的日期 - SQL Server

日期范围之间的日期 - SQL Server

我有一张桌子,里面有:

PlaceID, STARTDATE, ENDDATE, OCCUPANCY  
100, Jan 1, Jan 10, Occupied  
100, Jan 15, Jan 20, Occupied  
100, Jan 11, Jan 14, Empty  
100, Jan 21, Jan 31, Empty  
200, Jan 10, Jan 15, Occupied  
200, Jan 25, Jan 31, Occupied  
200, Jan 01, Jan 09, Empty  
200, Jan 16, Jan 24, Empty 

对于某个日期,比如说 1 月 22 日,我想知道它在不同 PlaceID 上的占用情况。

我需要的结果是:

PlaceID, OCCUPANCY  
100, Empty  
200, Empty  

我的问题是我找不到 STARTDATE 和 ENDDATE 之间的占用率。

答案1

简单的伪代码查询将是:

select PlaceID, OCCUPANCY from Occupancy
where STARTDATE >= 'Jan 22' and ENDDATE <= 'Jan 22'

如果可能存在重复条目:

select distinct PlaceID, OCCUPANCY from Occupancy
where STARTDATE >= 'Jan 22' and ENDDATE <= 'Jan 22'

然而,这一切都取决于 STARTDATE 和 ENDDATE 列是否是真实的日期列。

否则,您可以将它们定义为数字并将“1 月 22 日”显示为“2206”。

相关内容