转换为日期时间和提取月份名称

问题描述:

我有一个格式'201501'的日期,我从Excel导入表,所以它不是在日期时间数据类型,我想提取/返回月份名称。如何将“201501”转换为日期时间,同时获取月份名称。转换为日期时间和提取月份名称

+0

那么那天是几号? 'YYYYMM'? –

+0

是YYYYMM @AlexK –

+0

日期时间值应该是多少? –

YYYYMMDD是安全的,所以你可以:

;with t(example) as 
(
    select '201512' 
) 
select 
    cast(example + '01' as date) as [DATE], 
    datename(month, cast(example + '01' as date)) as [MONTH] 
from t 


DATE  MONTH 
2015-12-01 December 
+0

谢谢,这完美地解决了它 –

select DATE_FORMAT(str_to_date(substring("201501",5,6),"%m"),"%M") ; 

您可以使用下面的,如果你默认你的一天到每个月的第一天。

declare @dt varchar(10) 
declare @year datetime 

set @dt = '201501' 
Set @year = convert(datetime,Substring(@dt, 1,4) + '-' + Substring(@dt, 5,2) + '-01') 


select @year 

Select DateName(month , DateAdd(month ,CAST(substring('201501',5,2) AS int),-1)) 

在这里你去:

declare @mydate as varchar(8); 
set @mydate = '201501'; 

SELECT 
    DATENAME(MONTH, 
    CAST(
     convert(VARCHAR(8), @mydate + CAST('01' AS VARCHAR(2)), 112) 
    AS DATETIME)) 

输出:January

你不能直接转换这为DateTime。 我建议的一个选择是将它分成年份和月份,然后通过添加01作为日期例如创建它:如果格式为YYYY/MM/DD,那么2015/01/01 并最终使用此 选择日期名称(月,'2015/01/01')