返回SQL Server中的季度

时间:2009-11-26 10:27:51

标签: php sql-server date

我是SQL Server的一个完整的新手,并天真地认为会有一个QUARTER()函数,唉没有,有些谷歌搜索没有提出任何有用的东西!

基本上我想要实现的是,对于我的数据库中的所有行,我想要按季度分组的那些行的计数。

如果可能的话,我想用查询保留所有计算,但如果没有,那就是PHP正在解决所有问题。

4 个答案:

答案 0 :(得分:5)

如果您在行中有一个日期时间列,那么这应该可以解决问题:)

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 :(得分:1)

我用

select Datename(quarter,MYDATECOLUMN_NAME) 

MYDATECOLUMN_NAME是日期格式。

答案 2 :(得分:0)

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)

答案 3 :(得分:0)

我只是在日期使用月份函数,然后使用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