查找每周二和周四

时间:2017-08-24 14:15:00

标签: sql sql-server date

我有一个查询,查找我的表中的所有日期,他们是星期四。此外,我已经能够使用此代码找到第二和第四个星期四的大部分,但有时它会找到它们,添加额外的或错过它们。我怎样才能将其改进为更准确?

select Date, DATENAME(dw, Date) as 'Day'
from Appointment_Calendar
where DATENAME(dw, Date) = 'Thursday' and DATEPART(day,Date) between 8 and 14 
   or DATENAME(dw, Date) = 'Thursday' and DATEPART(day,Date) between 23 and 30

作为一个例子,这个脚本在第五个星期四找到11/30作为有效日期。

我的桌子开始日期是今天,8/24/2017供参考。

1 个答案:

答案 0 :(得分:5)

第四个星期四应该在本月22日至28日之间,而不是23日和30日。我认为改变应该那么简单......

所以将最后一行改为:

or DATENAME(dw, Date) = 'Thursday' and DATEPART(day,Date) between 22 and 28