使用start\u end和end\u date检索特定月份的所有记录

iklwldmw  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(345)

我有一个表,表中有以下结构和数据

Product           startdate         enddate 
ProdA             01/01/2020        15/01/2020
ProdB             29/01/2020        02/02/2020
ProdC             02/02/2020        03/03/2020
ProdD             20/12/2019        20/12/2020

我需要一个sql查询红移,返回我所有的产品,这是有效的一个月我提供。如果产品在开始日期和结束日期之间的某个月有任何一天,则该月的有效期视为有效
因此,如果我传递的日期是2020年1月1日(例如,如果您希望将其格式化为yyyy-mm,则可以根据解决方案进行修改),我将查找在2020年1月有效的记录,并希望返回以下产品
普罗达普罗达

qkf9rpyu

qkf9rpyu1#

您可以使用以下逻辑:

where startdate <= last_day('2020-01-01') and
      enddate >= '2020-01-01'

也就是说,如果开始日期在月底之前,而结束日期在月初或之后,则存在重叠。

相关问题