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

SQL Server-如何将YYYY和M转换为日期

  •  -3
  • Benzi  · 技术社区  · 6 年前

    我有两列:

    • 年- 依依 -数据类型 int
    • 月- -数据类型 int

    example for the results

    我的问题是如何将这些字段转换为日期格式,假设为月的第一天?

    4 回复  |  直到 6 年前
        1
  •  4
  •   Michał Turczyn    6 年前

    你可以 DATEFROMPARTS 功能,如下所示:

    SELECT DATEFROMPARTS([Year], [Month], 1) FROM MyTable
    

    最后一个参数是day部分,因此您可以将其从1更改为您想要的任何内容:)

        2
  •  1
  •   Sebastian Brosch Navjyot    6 年前

    可以使用以下内容(早期的SQL Server 2012):

    SELECT CAST(CONVERT(VARCHAR, [Year]) + '-' + CONVERT(VARCHAR, [month]) + '-' + '01' AS DATE) 
    FROM table_name
    

    自SQL Server 2012以来,您还可以使用 DATEFROMPARTS :

    SELECT DATEFROMPARTS([Year], [month], 1) FROM table_name
    

    演示: https://dbfiddle.uk/?rdbms=sqlserver_2017&fiddle=4ab24b45c9270d2880cda468aa422237

        3
  •  0
  •   SyMo7amed    6 年前

    您可以使用:

    select datefromparts(year, month, 1) from table_name
    

    参考文献如下: DateFromparts

        4
  •  0
  •   Anonymous    6 年前

    试试这个。我的回答如下:

    SELECT 
      CAST(CAST(Year_T AS CHAR(4)) + '-'+RIGHT(CAST('0' AS CHAR(1))+cast(Month_T AS VARCHAR(2)),2)+'-'+cast('0' AS CHAR(1))+cast('1' AS CHAR(1)) AS DATE) AS NewDate
    FROM MyTable