我需要在SQL Server中提取月份和年份。例如,如果日期是2015-01-01,我想将其设为201501并将其转换为varchar(6)
我该怎么做?
答案 0 :(得分:2)
1. SELECT CONVERT(VARCHAR(6), GETDATE(), 112)
2. SELECT CAST(YEAR(GETDATE()) * 100 + MONTH(GETDATE()) AS VARCHAR(6))
答案 1 :(得分:2)
试试这个:
SELECT DATEPART(yyyy, @date) * 100 + DATEPART(mm, @date)
如果您想对当前时间进行操作,请将@date
替换为CURRENT_TIMESTAMP
。
结果是整数,您可以使用varchar(6)
或CAST()
方法将其转换为CONVERT()
。
答案 2 :(得分:1)
尝试.. 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))
答案 3 :(得分:1)
这是最简单的答案
select getdate() , convert( varchar(6) , getdate() ,112)
如果你想要年份为2位
select getdate() , convert( varchar(12) , getdate() ,12)
每当您想将日期格式从标准格式转换为其他格式时,请务必查看此链接。
答案 4 :(得分:0)
select CONVERT(nvarchar(6),
DATENAME(yyyy, getdate())) +
SUBSTRING(CONVERT(nvarchar(6),getdate(), 112),5,2)
<强> DATENAME:强>
返回表示指定日期
的指定日期部分的字符串<强> REF:强>
https://msdn.microsoft.com/en-IN/library/ms174395.aspx
对于所有日期时间转换,这将有助于