我是 T-SQL 新手,在这里需要紧急帮助。我正在尝试从给定日期获取周数。
我知道它有一个内置函数,但返回值并不是我想要的。
例如,通过使用 select datepart(wk, '2013-01-07')
,它会返回 '2'.. 但实际上它应该返回 '1' 而不是 '2'。
任何想法如何纠正这个问题?
我是 T-SQL 新手,在这里需要紧急帮助。我正在尝试从给定日期获取周数。
我知道它有一个内置函数,但返回值并不是我想要的。
例如,通过使用 select datepart(wk, '2013-01-07')
,它会返回 '2'.. 但实际上它应该返回 '1' 而不是 '2'。
任何想法如何纠正这个问题?
试试这个
选择日期部分(周,获取日期())
这取决于您定义第一周的跳数。它总是在同一个工作日开始吗?还是总是从一月一日开始?如果您希望它始终在同一个工作日开始,则使用Set datefirst
告诉 T-SQL 您要将哪个工作日定义为一周的开始。如果您希望它始终从 1 月 1 日开始,则只需使用一年中的某一天而不是一周,减去 1,整数除以 7 并加 1。
declare @dat DateTime = getdate()
Select Select (datepart(dy, @dat)-1) / 7 + 1
尽管记忆犹新,但我相信一年中第一周的 ISO 标准是一年中第一个星期四所在的那一周。这可能可以解释为什么内置函数给出的结果与您需要的不同.