2012-01-25 30 views
2

我想要獲取本季度的哪一天,當您給出當前日期時。獲取季度中的天數

例如,如果我給2012年1月25日,那麼產量應該是25.因爲這是本季度的第25天。

同樣,如果我給02/01/2012它應該給32作爲輸出。

我能夠獲得本季度的第一天,但​​無法獲得本季度的哪一天。

我做了這樣的事情:

SELECT FirstDayOfQuarter = CONVERT(DATE, dateadd(qq, datediff(qq,0, GETDATE()),0)) 

誰能幫助我?

回答

9

查找季度的第一天: DATEADD(Q,DATEDIFF(Q,0,@TestDate),0)

然後找到你的特定日期在天的差別。

DECLARE @TestDate DateTime 

SET @TestDate = 'January 25, 2012' 


SELECT DATEDIFF(dd, DATEADD(q, DATEDIFF(q, 0, @TestDate),0), @TestDate) +1 
+0

如果我給今天的日期它是給我24而不是25 – peter

+0

對於那些想知道彼得評論的人,不要忘記最後的'+ 1'! –

2

你快到了。

SELECT DateDiff(dd,CONVERT(DATE, 
     dateadd(qq, datediff(qq,0, GETDATE()),0)),getDate())+1 
+0

偉大的思想事物一樣傑米F,但我認爲你需要+1天添加到天數 – Sparky

+0

Jinx!給我買可樂! –

1

嘗試獲取當前季度的天數;

選擇DATEDIFF(DD,DATEADD(QQ,DATEDIFF(QQ,0,GETDATE()),0),DATEADD(QQ,DATEDIFF(QQ,0,GETDATE())+ 1,0))