【问题标题】:Get week number from dates in T-SQL从 T-SQL 中的日期获取周数
【发布时间】:2011-01-20 00:38:18
【问题描述】:

如何从 T-SQL 中的日期获取周数?

【问题讨论】:

  • 根据什么周编号模式?
  • 什么星期编号系统? ISO?
  • 您使用的是什么版本的 SQL Server?如果您想要 ISO 周数,这可能会有所不同

标签: date tsql


【解决方案1】:

看看DATEPART

SELECT DATEPART(wk, GETDATE())

【讨论】:

  • 两个日期@startdate 和@enddate 之间的周数如何
  • 试试这个找出变量之间的周数。选择 DATEPART(wk, @enddate) - DATEPART(wk, @startdate)
  • 这里有一个详细的答案以及为什么要使用 DATEPART(ISO_WEEK, GETDATE()) - dba.stackexchange.com/a/38682/100185
【解决方案2】:

最好使用以下内容:

选择 DATEPART(ISO_WEEK, getDate())

当你有一个第 53 周的年份和 2015 年的情况一样,它会给出不可靠的结果。 (当然是 2008 R2)

选择 DATEPART(WK, '01/03/2016')

在第 53 周左右给出可变结果。当 1 月 3 日之后的一周运行时,它产生值 1。当现在在同一日期运行时,它给出值 2。

【讨论】:

  • 另外,ISO_WEEK 假设一周从星期一开始,并在一年中遇到的第一个星期一开始计数 (1)。 WK 假设一周从星期日开始,并在元旦开始计数 (1),无论是哪一天。
【解决方案3】:

或者像这样使用 DATEDIFF:DATEDIFF(wk,GETDATE(),GETDATE()+7) 来查找两天之间的周数

【讨论】:

    猜你喜欢
    • 2010-10-11
    • 2018-02-25
    • 2013-03-04
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    相关资源
    最近更新 更多