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