是否有可能获得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