sql - 查找每个第二个和第四个星期四

标签 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 作为有效日期。

我的表格开始日期是今天,2017 年 8 月 24 日,供引用。

最佳答案

第四个星期四应该是该月的 22 日至 28 日,而不是 23 日至 30 日。我想改变应该就是这么简单......

因此将最后一行更改为:

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

关于sql - 查找每个第二个和第四个星期四,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45863968/

相关文章:

Java JDBC 类型转换(Firebird/Jaybird): check value/type compatibility before using getter or updater ResultSet method?

sql-server - SQL Server 创建一个带有 IDENTITY COLUMN 的表 - 唯一性

dd-MMM-yyyy 格式的 java.time.format.DateTimeParseException

r - R查找月份的最后一个工作日

mysql - 我无法将数据从主表复制到临时表

c# - 如何在任何 PC 上使用带有数据库的 C# 应用程序

sql-server - SQL Server 中的按位运算

sql - 获取最后一个插入 ID 的标准方法是什么?

c# - 如何在 Asp.net Web API 中使用特定的 CultureInfo

sql - 在数据库中清晰地表示电子商务产品和变体