是否有可能獲得GETDATE()作爲輸入的一個月的第一週的日期。SQL Server:獲取一個月的第一週和第二週的日期範圍
我可以通過下面的代碼獲得當前一週的日期: -
select
convert(varchar(50), dateadd(dd, - datepart(dw, GETDATE()) + 1, GETDATE()), 101),
convert(varchar(50), dateadd(dd, - datepart(dw, GETDATE()) + 7, GETDATE()), 101)
我怎樣才能獲得基於GETDATE()
作爲輸入當月的第一,第二週的日期?
例如:七月
- 1周工作日期,2016年 - 2016年1月7日 - 16年2月7日
- 2周工作日期: - 2016年4月7日 - 9 /二千○十六分之七
感謝
編輯: - 我使用下面的查詢來獲取開始,每星期的結束日期爲給定月份: -
DECLARE @date date = '2016-07-08'--sample date
DECLARE @firstDay date = DATEADD(M, DATEDIFF(M, 0, @date), 0)
DECLARE @firstWeekLastDay date = DATEADD(D, 7-DATEPART(DW, @firstDay), @firstDay)
DECLARE @secondWeekFirstDay date = DATEADD(D, 2, @firstWeekLastDay)
DECLARE @secondWeekLastDay date = DATEADD(D, 5, @secondWeekFirstDay)
DECLARE @thirdWeekfirstDay date = DATEADD(D, 2, @secondWeekLastDay)
DECLARE @thirdWeekLastDay date = DATEADD(D, 5, @thirdWeekfirstDay)
DECLARE @fourthWeekFirstDay date = DATEADD(D, 2, @thirdWeekLastDay)
DECLARE @fourthWeekLastDay date = DATEADD(D, 5, @fourthWeekFirstDay)
DECLARE @fifthWeekFirstDay date = DATEADD(D, 2, @fourthWeekLastDay)
DECLARE @fifthWeekLastDay date = DATEADD(D, 5, @fifthWeekFirstDay)
SELECT @firstDay, @firstWeekLastDay, @secondWeekFirstDay, @secondWeekLastDay, @thirdWeekfirstDay, @thirdWeekLastDay, @fourthWeekFirstDay, @fourthWeekLastDay
那麼這周從週日開始,到週六結束呢? – Whencesoever
也在示例2周只有6天? – Whencesoever
是的,所以基本上可以得到在特定月份的第一週所有的日期。 – Villie