SQL Server 2012 - 星期六到星期五
SQL Server 2012 - Week Date Sat To Friday
我想我真的很接近得到这个,但我只是偏离了目标!
我正在尝试创建一个日期(报告截止日期),允许我每周周六到周五 select。
以上周为例,下面的代码为我提供了日期范围为 24/07/2016 至 30/07/2016 的 29/07/2016 但是我希望日期范围为 23/07/2016 至 29/ 07/2016 这可能吗?
DATEADD(WEEK,DATEDIFF(WEEK,0,[DateCreated]),4) AS [WeekCreated]
非常感谢!
Id Date Week Commencing Week Ending
1 16/07/2016 16/07/2016 22/07/2016
2 17/07/2016 16/07/2016 22/07/2016
3 18/07/2016 16/07/2016 22/07/2016
4 19/07/2016 16/07/2016 22/07/2016
5 20/07/2016 16/07/2016 22/07/2016
6 21/07/2016 16/07/2016 22/07/2016
7 22/07/2016 16/07/2016 22/07/2016
8 23/07/2016 23/07/2016 29/07/2016
9 24/07/2016 23/07/2016 29/07/2016
10 25/07/2016 23/07/2016 29/07/2016
11 26/07/2016 23/07/2016 29/07/2016
12 27/07/2016 23/07/2016 29/07/2016
13 28/07/2016 23/07/2016 29/07/2016
14 29/07/2016 23/07/2016 29/07/2016
这应该能为您提供所需的信息:
DATEADD(DAY, 6 - DATEPART(weekday,[DateCreated]), [DateCreated])
它将为您提供任何给定日期的下周五。请记住 weekday
日期部分对区域设置敏感,因此可能需要根据区域设置调整偏移量。或者您可能需要做一些更全面的事情来使其对区域设置不敏感。 SELECT @@DATEFIRST
将为您提供您所在地区一周的第一天。 7 是星期天。如有必要,您可以将其合并。
试试这个,
SET DATEFIRST 6 -- set Saturday as Week start day
SELECT DATEPART(DW, CAST('23-jul-2016' as DATETIME))
检查这个- https://msdn.microsoft.com/en-in/library/ms181598.aspx
范围开始:DATEADD(DAY, 6 - DATEPART(WEEKDAY, [DateCreated]),
[DateCreated])
范围结束:DATEADD(DAY, -1 * DATEPART(WEEKDAY, [DateCreated]),
[DateCreated])
快乐编码
我想我真的很接近得到这个,但我只是偏离了目标!
我正在尝试创建一个日期(报告截止日期),允许我每周周六到周五 select。 以上周为例,下面的代码为我提供了日期范围为 24/07/2016 至 30/07/2016 的 29/07/2016 但是我希望日期范围为 23/07/2016 至 29/ 07/2016 这可能吗?
DATEADD(WEEK,DATEDIFF(WEEK,0,[DateCreated]),4) AS [WeekCreated]
非常感谢!
Id Date Week Commencing Week Ending
1 16/07/2016 16/07/2016 22/07/2016
2 17/07/2016 16/07/2016 22/07/2016
3 18/07/2016 16/07/2016 22/07/2016
4 19/07/2016 16/07/2016 22/07/2016
5 20/07/2016 16/07/2016 22/07/2016
6 21/07/2016 16/07/2016 22/07/2016
7 22/07/2016 16/07/2016 22/07/2016
8 23/07/2016 23/07/2016 29/07/2016
9 24/07/2016 23/07/2016 29/07/2016
10 25/07/2016 23/07/2016 29/07/2016
11 26/07/2016 23/07/2016 29/07/2016
12 27/07/2016 23/07/2016 29/07/2016
13 28/07/2016 23/07/2016 29/07/2016
14 29/07/2016 23/07/2016 29/07/2016
这应该能为您提供所需的信息:
DATEADD(DAY, 6 - DATEPART(weekday,[DateCreated]), [DateCreated])
它将为您提供任何给定日期的下周五。请记住 weekday
日期部分对区域设置敏感,因此可能需要根据区域设置调整偏移量。或者您可能需要做一些更全面的事情来使其对区域设置不敏感。 SELECT @@DATEFIRST
将为您提供您所在地区一周的第一天。 7 是星期天。如有必要,您可以将其合并。
试试这个,
SET DATEFIRST 6 -- set Saturday as Week start day
SELECT DATEPART(DW, CAST('23-jul-2016' as DATETIME))
检查这个- https://msdn.microsoft.com/en-in/library/ms181598.aspx
范围开始:
DATEADD(DAY, 6 - DATEPART(WEEKDAY, [DateCreated]), [DateCreated])
范围结束:
DATEADD(DAY, -1 * DATEPART(WEEKDAY, [DateCreated]), [DateCreated])
快乐编码