2012-01-25 3 views
2

Я пытаюсь получить, в какой день квартала, когда вы даете текущую дату.Получение дня в квартале

Для примера, если я даю 25.01.2012, тогда выход должен быть 25. Поскольку это 25-й день квартала.

Аналогичным образом, если я даю 02/01/2012, он должен дать 32 в качестве вывода.

Я могу получить первый день квартала, но не смог получить, в какой день он находится в квартале.

я сделал что-то вроде этого:

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

Может кто-нибудь мне помочь?

ответ

9

Найти первый день квартала: DATEADD (д, DATEDIFF (д, 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

Великий ум как Jamie F, но я думаю, вам нужно добавить +1 к количеству дней – Sparky

+0

Jinx! Купи мне кокс! –

1

Попробуйте это, чтобы получить количество дней в ТЕКУЩЕМ КВАРТАЛЕ;

Выберите DateDiff (дд, DateAdd (кв.кв, DateDiff (кв.кв, 0, GETDATE()), 0), DateAdd (кв.кв, DateDiff (кв.кв, 0, GETDATE()) + 1,0))

Смежные вопросы