当您提供当前日期时,我试图获取该季度的哪一天。

例如,如果我给出2012年1月25日,则输出应为25。因为它是该季度的第25天。

同样,如果我给出02/01/2012,则应给出32作为输出。

我能够获得该季度的第一天,但​​无法获得该季度的哪一天。

我做了这样的事情:

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

谁能帮我?

最佳答案

查找该季度的第一天:

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;

10-02 22:13