在T-SQL中提取月份和年份

在T-SQL中提取月份和年份,sql,sql-server,tsql,Sql,Sql Server,Tsql,我需要在SQL Server中提取月份和年份。例如,如果日期是2015-01-01,我希望将其设置为201501,并将其转换为varchar(6) 我该怎么做 select CONVERT(nvarchar(6), DATENAME(yyyy, getdate())) + SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2) 日期名称: 返回表示指定日期的指定日期部分的字符串 ref: 对于所有日期时间转换,这将有所帮助 日期名称: 返回

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

我该怎么做

select CONVERT(nvarchar(6), 
DATENAME(yyyy, getdate())) + 
SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)
日期名称:

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

ref:

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

日期名称:

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

ref:

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

试试看

编辑:2

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

编辑:2

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

SELECT DATEPART(yyyy, @date) * 100 + DATEPART(mm, @date)
如果要在当前时间执行此操作,请将
@date
替换为
current\u TIMESTAMP

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

尝试以下操作:

SELECT DATEPART(yyyy, @date) * 100 + DATEPART(mm, @date)
如果要在当前时间执行此操作,请将
@date
替换为
current\u TIMESTAMP


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

这是最简单的答案

select getdate() , convert( varchar(6) , getdate() ,112) 
如果你想把年份设为2位数

select getdate() , convert( varchar(12) , getdate() ,12)
无论何时要将日期格式从标准格式转换为其他格式,请始终选中此链接


这是最简单的答案

select getdate() , convert( varchar(6) , getdate() ,112) 
如果你想把年份设为2位数

select getdate() , convert( varchar(12) , getdate() ,12)
无论何时要将日期格式从标准格式转换为其他格式,请始终选中此链接


试试这个:
选择CONVERT(VARCHAR(6),CAST('2015-01-01'为日期),112)
欢迎使用堆栈溢出!在提出新问题之前,请先搜索。请尝试以下操作:
选择CONVERT(VARCHAR(6),CAST('2015-01-01'作为日期),112)
欢迎使用堆栈溢出!在问新问题之前请先搜索。不行。预期结果是
201501
@user3540365请查看更新的答案,因为201503不起作用。预期结果是
201501
@user3540365请查看更新答案获取201503这一个不同且智能:)这一个不同且智能:)