【发布时间】:2018-12-11 13:42:24
【问题描述】:
Select (SELECT YEAR(GETDATE())+(Select('-'))+(SELECT YEAR(GETDATE())+1));
我想输出为"2018-2019"。
有人吗?
【问题讨论】:
标签: sql sql-server tsql sql-server-2008
Select (SELECT YEAR(GETDATE())+(Select('-'))+(SELECT YEAR(GETDATE())+1));
我想输出为"2018-2019"。
有人吗?
【问题讨论】:
标签: sql sql-server tsql sql-server-2008
您可以使用 + 来附加字符串,因为您使用的是 SQL 2008,更高版本具有 CONCAT() 功能:
SELECT CAST(YEAR(GETDATE()) AS VARCHAR(4)) + ' - ' + CAST(YEAR(DATEADD(YEAR, 1, GETDATE())) AS VARCHAR(4))
【讨论】:
使用datename():
select (datename(year, getdate()) + '-' + datename(year, dateadd(year, 1, getdate()))
这样,您不必处理将整数转换为字符串的问题。
【讨论】:
SELECT CONCAT(YEAR(GETDATE()), '-', YEAR(GETDATE()) + 1)
CONCAT 负责转换为字符串,因此您不必担心。
编辑:不幸的是,我知道 CONCAT 仅在 sql server 2012 及更高版本中可用。
【讨论】:
concat 在 SQL Server 2008 中不可用。
你也可以使用
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))
【讨论】: