从表列的SQL Server日期值获取月份名称

时间:2019-02-02 10:03:04

标签: sql sql-server

我想创建一个统计查询(显示每月的记录数)。

问题是我希望以1月,2月,3月等字母显示月份,而不像1、2或3。我没有使用month(getdate()以字母显示月份名称。

我不知道如何进行转换。这是我的SQL Server查询:

select count(*) [Total], month(date) [Mois] 
from user 
where year(date) >= 2018 
group by month(date) 
order by month(date) desc 

3 个答案:

答案 0 :(得分:2)

您应该尝试类似的操作

select convert(char(3), [date], 0)
select datename(month, [date])

答案 1 :(得分:2)

您可以使用

SELECT FORMAT ([Date], 'MMMM') as date

答案 2 :(得分:1)

我想您想要的查询是:

select year(date), datename(month, date), count(*)  as total
from user 
where year(date) >= 2018 
group by year(date), datename(month, date)
order by min(date);

注意:

  • 您应该包括在您的查询的年份。您的where表明,查询可以返回多于一年。
  • 如果您确实要合并多个年份中的月份,则不要包含年份,但是我认为这不太可能。
  • 一般情况下,你想按时间顺序的结果。一种方便的方法是为了通过各组中的date的值。