我在这个问题上绞尽脑汁。我有一系列广告系列及其相关的开始和结束日期。我正在尝试编写一个查询来列出2017年开始日期和结束日期之间至少有一天的广告系列。我原来的想法只是使用datepart():
datepart(yyyy,StartDt = 2017) OR datepart(yyyy,EndDt = 2017)
但是不会选择2017年之前开始并在2017年之后结束的广告系列,例如开始日期2016年1月1日和结束日期1/1/2018。
答案 0 :(得分:5)
最简单的方法可能就是这样(这是我在进行临时表查询时使用的东西):
WHERE CampaignStartDate < '2018-01-01'
AND CampaignEndDate >= '2017-01-01'
这可以保证您的广告系列开始日期和结束日期与2017年至少有一些重叠。如果两个时间范围完全重叠,这是一种很好的测试方法。