我是SQL Server的一个完整的新手,并天真地认为会有一个QUARTER()函数,唉没有,有些谷歌搜索没有提出任何有用的东西!
基本上我想要实现的是,对于我的数据库中的所有行,我想要按季度分组的那些行的计数。
如果可能的话,我想用查询保留所有计算,但如果没有,那就是PHP正在解决所有问题。
答案 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