我有一个数据库架构来创建与Outlook非常相似的提醒。您可以创建每周,每月和每年的提醒。
我需要找到类似的东西:
The first Friday of January
The third Wednesday of every 3 months.
有人能告诉我如何在SQL Server 2008中找到类似第一,第二,第三,第四等日期的内容吗?
答案 0 :(得分:1)
使用datepart
查找该月第一天的星期几:
datepart(weekday, '2011-06-01')
由此您可以计算任何工作日的第一天,例如第一个星期一(2):
(2 + 7 - datepart(weekday, '2011-06-01')) % 7 + 1
要获得第二个星期一,你只需要添加7,依此类推。
要检查日期是否仍然在同一个月内,您需要该月的最后一个日期,您可以从下个月的第一天减去一天:
datepart(day, dateadd(day, -1, '2011-07-01'))