我是T-SQL的新手,需要緊急幫助。 我想從給定的日期獲取週數。根據日期返回週數
據我所知,有一個在它的函數構建,但價值回報不完全是我想要的。
對於例如,通過選擇datepart(wk, '2013-01-07')
,它將返回我的「2」。但實際的事實是,它應該返回「1」,而不是「2」。
任何想法如何解決此問題?
我是T-SQL的新手,需要緊急幫助。 我想從給定的日期獲取週數。根據日期返回週數
據我所知,有一個在它的函數構建,但價值回報不完全是我想要的。
對於例如,通過選擇datepart(wk, '2013-01-07')
,它將返回我的「2」。但實際的事實是,它應該返回「1」,而不是「2」。
任何想法如何解決此問題?
+1是的,我想建議與1月1日,但這一個更好,我認爲 –
謝謝馬辛!你是我的救世主! –
試試這個
SELECT DATEPART(WEEK,GETDATE())
這取決於你跳定義第一周。它總是在同一個工作日開始嗎?或者它是否始終在一月一號開始?如果您希望它始終在同一個工作日內啓動,那麼請使用Set datefirst
來告訴T-SQL您想要定義爲星期幾的星期幾。如果你想讓它總是在1月1日開始,然後只用一年,而不是一週中的一天,7減1,整數除法,並添加1
declare @dat DateTime = getdate()
Select Select (datepart(dy, @dat)-1)/7 + 1
雖然從內存中去,相信對於ISO標準一年的第一週是一年中第一個星期四的一週。這可能解釋了爲什麼內置函數給出的結果與您所需的結果不同。
減去1?..... –
*當datepart是星期(wk,ww)或星期幾(dw)時,返回值取決於使用SET DATEFIRST設置的值* –
select datediff(dd, '2013-01-01','2013-01-07')/ 7 –