【问题标题】:Extract Month and year in T-SQL [duplicate]在T-SQL中提取月份和年份[重复]
【发布时间】:2015-03-20 04:31:26
【问题描述】:

我需要在 SQL Server 中提取月份和年份。例如,如果日期是 2015-01-01,我想将其设为 201501 并将其转换为 varchar(6)

我该怎么做?

【问题讨论】:

  • 试试这个:SELECT CONVERT(VARCHAR(6), CAST('2015-01-01' AS DATE),112)
  • 欢迎来到 Stack Overflow!在提出新问题之前请先搜索。

标签: sql sql-server tsql


【解决方案1】:
1. SELECT CONVERT(VARCHAR(6), GETDATE(), 112)

2. SELECT  CAST(YEAR(GETDATE()) * 100 + MONTH(GETDATE()) AS VARCHAR(6))

【讨论】:

  • 这一款与众不同且聪明 :)
【解决方案2】:

试试这个:

SELECT DATEPART(yyyy, @date) * 100 + DATEPART(mm, @date)

如果要在当前时间进行操作,请将@date 替换为CURRENT_TIMESTAMP

虽然结果是整数,但您可以使用CAST()CONVERT() 方法将其转换为varchar(6)

【讨论】:

    【解决方案3】:

    试试..FIDDLE DEMO

    declare @dt datetime='2015-01-01'
    select CAST(YEAR(@dt)as Varchar(6))+
    Case When Len(Cast(MONTH(@dt) as varchar(6)))>1 
    then CAST(MONTH(@dt) as varchar(6)) Else 
    '0'+Cast(MONTH(@dt) as varchar(6)) End
    

    编辑:2

    declare @dt date='2015-01-01' 
    select CAST(REPLACE(@dt,'-','')as varchar(6))
    

    【讨论】:

      【解决方案4】:

      这是最简单的答案

      select getdate() , convert( varchar(6) , getdate() ,112) 
      

      如果您希望年份为 2 位数

      select getdate() , convert( varchar(12) , getdate() ,12)
      

      当您想将日期格式从标准格式转换为另一种格式时,请务必查看此链接。

      http://www.w3schools.com/sql/func_convert.asp

      https://msdn.microsoft.com/en-us/library/ms187928.aspx

      【讨论】:

        【解决方案5】:
        select CONVERT(nvarchar(6), 
        DATENAME(yyyy, getdate())) + 
        SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)
        

        日期名称:

        返回一个字符串,表示指定日期的指定日期部分

        参考:

        https://msdn.microsoft.com/en-IN/library/ms174395.aspx

        对于所有日期时间转换,这将有所帮助

        http://www.sqlusa.com/bestpractices/datetimeconversion/

        【讨论】:

        • 行不通。预期结果是201501
        • @user3540365 请查看更新后的答案 201503
        猜你喜欢
        • 2020-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多