代码之家  ›  专栏  ›  技术社区  ›  JL_Coder

如何从该查询中提取年和月

  •  1
  • JL_Coder  · 技术社区  · 6 年前

    我有一个查询,根据日期列按月显示订单总数。我可以知道如何在月份列后面加上年份吗?

    select DATENAME(MONTH,DATEADD(MONTH, MONTH(<column>) - 1, 0)) AS Month,
        count(*) AS Total_Request
    from <table>
    group by month(<column>)
    

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  3
  •   Gabriele Franco    6 年前

    在SQL Server 2012中,您可以使用格式功能

    SELECT 
         FORMAT( YourColumn, 'yyyy-MMMM')
         ,COUNT(*) AS Total_Request
    FROM 
        <table>
    GROUP BY 
        FORMAT( YourColumn, 'yyyy-MMMM')
            
    

    还可以添加区域性作为第三个参数。 下面是SQL的语法:

    FORMAT ( value, format [, culture ] )
    

    有关文档,请参见 here

        2
  •  2
  •   Tim Biegeleisen    6 年前

    我将直接按年份和月份汇总,作为单个文本字段:

    SELECT
        CONVERT(varchar(7), <column>, 120) AS Year-Month,
        COUNT(*) AS Total_Request
    FROM <table>
    GROUP BY
        CONVERT(varchar(7), <column>, 120);
    

    如果你真的想要年份和月份的三个字母缩写,你可以尝试:

    SELECT
        YEAR(<column>) AS Year,
        LEFT(DATENAME(MONTH, <column>), 3) AS Month,
        COUNT(*) AS Total_Request
    FROM <table>
    GROUP BY
        YEAR(<column>),
        LEFT(DATENAME(MONTH, <column>), 3);