4
A
回答
2
的一部分,这是你可以找到所有“第二星期二”于2013年
select
dateadd(day, 8, datediff(day, 1, dateadd(month, n, '2013-01-07'))/7 * 7) date
from
(values (0),(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11)) t(n)
2
不知道什么实际所需的输入和输出,我能给你此刻是用于识别日期为每月的第二个星期二谓词:
DATEPART(day,@Date) between 8 and 14 and --Find the second one in the month
DATEPART(weekday,@Date) = DATEPART(weekday,'20130319') --Make sure its a Tuesday
(我用的是固定的,已知周二以避免必须知道什么DATEFIRST
设置有效运行查询时)
此找到合适的星期二当月,但显然@Date
可以设置为任何利益日期:
declare @Date datetime
set @Date = CURRENT_TIMESTAMP
;with Numbers as (select n from (values (0),(1),(2),(3),(4),(5),(6)) t(n)),
PotentialDates as (select DATEADD(day,n,DATEADD(month,DATEDIFF(month,'20010101',@Date),'20010108')) as Date
from Numbers
)
select * from PotentialDates where DATEPART(weekday,Date) = DATEPART(weekday,'20130319')
(并希望也很明显,查询可能是一个较大查询的一部分,其中@Date
是不是列的值,所以这可以形成基于集合的方式来工作的整片)
+0
谢谢达米恩,这有帮助! – DaFunkyAlex 2013-03-22 07:48:09
1
这段代码会给你每个第一个和第三个星期日的月..所以与SQL的欢呼:-)
declare @dt datetime
select @dt = '12/01/2014'
select dateadd(mm,datediff(mm,'',@dt),'') - datepart(dw,dateadd(mm,datediff(mm,'',@dt),'')+0)+ 8
select dateadd(mm,datediff(mm,'',@dt),'') - datepart(dw,dateadd(mm,datediff(mm,'',@dt),'')+0)+ 22
相关问题
- 1. PHP strtotime - 获取第二个最近的“本月第二个星期日”
- 2. 使用NSCalendar - 获取下一个月的第一个星期二
- 3. 如何让每个月的第二个星期天在两个日期之间?
- 4. 使用Python下一年每个月的上个星期二的打印日期
- 5. 在一个字符串(星期一,星期二)中获取一个月的第一天,在php
- 6. strtotime认为“下个月的第一个星期日”=星期三?
- 7. 如何在C#计算出每月的第二个星期五
- 8. 本月的第一个[星期一],本月的第二个[星期四]等。德尔福
- 9. SQL Server:获取一个月的第一周和第二周的日期范围
- 10. 第二个日期大于javascript中的第一个日期
- 11. 用JavaScript查找本月的第二个和第四个星期二
- 12. 获取每个11月的第四个星期三R
- 13. 如何获得“每个月的第一个星期四”的DatePeriod?
- 14. SQL Server查询获得第二个星期四的月份
- 15. 获取月份的第一个星期一和最后一个星期日,穿过月份边界
- 16. TSQL下一个付款日期二月
- 17. 找到第三个星期日每个月给两个日期之间
- 18. 6 SSRS日历每个月的第7个星期日期范围
- 19. C#获取下一个第N个星期五日期从今天的日期
- 20. 如何获得给定日期的下个月的第一个星期天?
- 21. 如何获取当年第一个星期一的日期(php)?
- 22. 获取本周第一个星期一的日期?
- 23. Golang Revel Job spec每个月的第一个星期一
- 24. node-schedule每个月的第一个星期一运行
- 25. Javascript:用3个字母替换日期的全天名称和全月份名称。星期二>星期二
- 26. 如何获得一个月的第一个星期一?
- 27. Schedule Cron跳过每个月的第一个星期六
- 28. 给定一个日期(m/d/yyyy)来确定它的月份“第三个星期二”等。
- 29. 找到每个顾客的第二个约会日期
- 30. 找到每隔第二和第四个星期四
你有什么作为输入,或者你想要的输出是什么?你是否给我们一个'datetime'值,我们必须从同一个月中找到相关的日期?或者你想要一个包含所有这些日期的表格吗? – 2013-03-22 07:40:52
输出应该是** 2013-03-12 **,我想循环一年中的任何月份 - 它对于报告是动态的。 – DaFunkyAlex 2013-03-22 07:43:00
我已更新我的答案,以查找当月的第二个星期二。但请注意,我们通常不会尝试在SQL中编写* loops * - 我们试图找到一个*基于集合的方法 - 告诉SQL Server最终结果集的形状并让* it *计算出如何计算它) – 2013-03-22 07:53:53