【问题标题】:SQL SERVER -- YEARSQL 服务器——年份
【发布时间】:2018-12-11 13:42:24
【问题描述】:
Select (SELECT YEAR(GETDATE())+(Select('-'))+(SELECT YEAR(GETDATE())+1));

我想输出为"2018-2019"

有人吗?

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008


    【解决方案1】:

    您可以使用 + 来附加字符串,因为您使用的是 SQL 2008,更高版本具有 CONCAT() 功能:

    SELECT CAST(YEAR(GETDATE()) AS VARCHAR(4)) + ' - ' + CAST(YEAR(DATEADD(YEAR, 1, GETDATE())) AS VARCHAR(4)) 
    

    【讨论】:

      【解决方案2】:

      使用datename():

      select (datename(year, getdate()) + '-' + datename(year, dateadd(year, 1, getdate()))
      

      这样,您不必处理将整数转换为字符串的问题。

      【讨论】:

        【解决方案3】:
        SELECT CONCAT(YEAR(GETDATE()), '-', YEAR(GETDATE()) + 1)
        

        CONCAT 负责转换为字符串,因此您不必担心。

        编辑:不幸的是,我知道 CONCAT 仅在 sql server 2012 及更高版本中可用。

        【讨论】:

        • concat 在 SQL Server 2008 中不可用。
        • @GSerg,该死的,很好发现。
        【解决方案4】:

        你也可以使用

        SELECT CAST(YEAR(GETDATE()) AS VARCHAR(4)) + 
               '-' + 
               CAST(YEAR(GETDATE()) + 1 AS VARCHAR(4))
        

        SELECT CAST(DATEPART(Year,GETDATE()) AS VARCHAR(4)) + 
               '-' + 
               CAST(DATEPART(Year, GETDATE()) + 1 AS VARCHAR(4))
        

        【讨论】:

          猜你喜欢
          • 2020-05-15
          • 2012-10-31
          • 1970-01-01
          • 2014-01-28
          • 2016-01-22
          • 2016-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多