【问题标题】:How to get the week Starting and Ending date using Week number in SQL Server?如何使用 SQL Server 中的周数获取周开始和结束日期?
【发布时间】:2017-08-08 06:21:14
【问题描述】:

我想使用周数获​​取周开始日期和周结束日期

例如

输入

我的周数 = 32

输出

WeekStartingDate     WeekEndingDate
------------------------------------
06-08-2017           12-08-2017

注意

没有日期。只能使用周数。有可能吗?

更新

【问题讨论】:

  • 请参考social.msdn.microsoft.com/Forums/sqlserver/en-US/…。在那里你可以找到如何在给定周数的情况下获取日期。这并不能完全回答您的问题,但可以根据本文中建议的方法构建解决方案。
  • 结果不一样,因为@@DATEFIRST,试试SELECT @@DATEFIRST你就会明白我的意思,当datepart是week(wk,ww)或者weekday(dw)返回值取决于使用 SET DATEFIRST 设置的值。

标签: sql sql-server date stored-procedures


【解决方案1】:

我试过这样......

 DECLARE @WK INT  SET @WK = 32
    DECLARE @YR INT  SET @YR = 2017

    SELECT DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4 -
             DATEPART(DW, DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4) + 1 AS [WEEK_STARTDATE],

     DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4 -
             DATEPART(DW, DATEADD (WEEK, @WK, DATEADD (YEAR, @YR-1900, 0)) - 4) + 7 AS [WEEK_ENDDATEDATE]

输出

WEEK_STARTDATE            WEEK_ENDDATEDATE
2017-08-06 00:00:00.000   2017-08-12 00:00:00.000

【讨论】:

  • 这会给你07-08-201713-08-2017。删除+1 from startingDate and change +7 to +6
  • @mohamedfaiz 不,你测试了吗?
  • @Sami 是的,我已经测试过了。我已经从这个link得到了代码
  • @mohamedfaiz 不,它会给你你所期望的
  • @mohamedfaiz 我想我也对其进行了测试并给出了预期的结果,因为 Chanukya 在发布答案之前对其进行了测试。
猜你喜欢
  • 2022-01-07
  • 2010-11-19
  • 1970-01-01
  • 2020-11-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多