【问题标题】:SQL Server 2012 - Week Date Sat To FridaySQL Server 2012 - 星期日期星期六至星期五
【发布时间】:2016-08-03 12:15:27
【问题描述】:

我想我真的很接近这个了,但我只是离题了!

我正在尝试创建一个日期(报告日期),让我可以选择每周周六到周五。 以上周为例,下面的代码为我提供了 29/07/2016 的日期范围为 24/07/2016 至 30/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

【问题讨论】:

标签: sql sql-server datediff dateadd


【解决方案1】:

这应该可以满足您的需求:

DATEADD(DAY, 6 - DATEPART(weekday,[DateCreated]), [DateCreated])

它将为您提供任何给定日期的下一个星期五。请记住,weekday 日期部分对区域设置敏感,因此可能需要根据区域设置调整偏移量。或者您可能需要做一些更全面的事情以使其对语言环境不敏感。 SELECT @@DATEFIRST 将在您的语言环境中为您提供一周的第一天。 7 是星期天。如有必要,您可以将其纳入其中。

【讨论】:

  • 嗨 - 感谢您的快速回复 - 在使用这些解决方案后,我无法完全重新创建自己的状态(我得到了工作周日期范围,例如 25 日 31 日),所以在上面我创建了一个迷你数据集阐明。我已经展示了一周的开始和一周的结束,但是创建哪个并不重要(如果一个比另一个更容易)-我希望这会有所帮助:)
  • 啊,我解决了!正如你所说,我需要重置我的语言环境,所以星期五是工作周的第一天,偏移量为 - 7,所以它在周末结束(每个星期五) - 谢谢大家的帮助 :) 我写的都是一样的在复杂的代码中,这只是我需要克服的最后一个障碍!
【解决方案2】:

试试这个,

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

【讨论】:

    【解决方案3】:
    • 范围开始:DATEADD(DAY, 6 - DATEPART(WEEKDAY, [DateCreated]), [DateCreated])

    • 范围结束:DATEADD(DAY, -1 * DATEPART(WEEKDAY, [DateCreated]), [DateCreated])

    快乐编码

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      • 2021-07-05
      • 2012-01-28
      • 2021-02-05
      • 1970-01-01
      • 2018-03-28
      • 1970-01-01
      相关资源
      最近更新 更多