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