【发布时间】:2014-11-06 21:15:37
【问题描述】:
我想用 SQL 过滤一些日期。
我希望能够传递一个标志,表示保留从 X 日期到 Y 日期的月份的所有第一个星期一。
所以本质上,我想传入一个日期并能够判断它是给定月份的第一个、第二个、第三个、第四个还是最后一个星期一(例如)。
我已经过滤了月份和日期,我目前正在使用 DATEPART(DAY, thedate) 检查日期是否
所以我坚持的部分是Where IsDateFirstOfMonth(@date)
我从哪里开始编写函数IsDateFirstOfMonth?
非常感谢任何帮助
【问题讨论】:
-
检查该月的某天是否小于 8 有什么问题?
-
您是否试图确定
@date是第一个星期一,还是在该月的第一周(即,是否与一年中的第一个日期在同一周)同月)?听起来您几乎要同时尝试两者。 -
嗯,我有一个完整的日期列表。让我们说从今天到年底的所有星期一。我想要选择返回每个月的第一个或第二个或第三个或第四个或最后一个星期一。所以如果我使用 >8 或 >15 等的逻辑......它并不总是适用于第四个或最后一个
-
如果第四个星期一也是最后一个星期一呢?
-
您可以使用从下个月1号减去8天的技巧来确定是否是最后一天。
标签: sql sql-server tsql datetime