Возврат четверти в SQL Server - PullRequest
       8

Возврат четверти в SQL Server

1 голос
/ 26 ноября 2009

Я полный новичок в SQL Server и наивно думал, что будет функция QUARTER (), увы ее нет, и некоторые поиски в Google не придумали ничего полезного!

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

Если возможно, я бы хотел сохранить все расчеты с запросом, но если нет, то PHP запускает все.

Ответы [ 4 ]

5 голосов
/ 26 ноября 2009

Это должно сработать, если у вас есть столбец datetime в строке курса:)

SELECT datepart(qq, my_date_column) as quarter, count(*) as rows
  from my_table
  group by datepart(qq, my_date_column) 

Конечно, если у вас есть данные за несколько лет, вы можете добавить datepart(yyyy, my_date_column) также

1 голос
/ 04 января 2013

Я использую

select Datename(quarter,MYDATECOLUMN_NAME) 

MYDATECOLUMN_NAME - формат даты.

0 голосов
/ 24 февраля 2015

Я просто использовал функцию месяца в дате, а затем использовал функцию Case для их организации:

Case When Month(date) in (1,2,3) then '1stQtr' 
     When Month(date) in (4,5,6) then '2ndQtr'
     When Month(Date) in (7,8,9) then "3rdQtr'
     When Month(Date) in (10,11,12) then '4thQty' END AS Quarter 
0 голосов
/ 26 ноября 2009
select
CONVERT(DATETIME, CONVERT(CHAR(8),
DATEPART(YEAR, yourDateColumn) * 10000 +
( DATEPART(QUARTER, @date) * 3 - 2) * 100 +
1),
112) from...

взято отсюда:

http://geertverhoeven.blogspot.com/2007/01/get-quarter-of-given-date-in-datetime.html

Или вы можете использовать SQL, упомянутый в комментарии в этой ссылке, чтобы получить первый день квартала:

DATEADD(qq,DATEDIFF(qq,0,@date),0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...