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

时间:2015-07-28 11:44:33

标签: sql datetime sql-server-2012

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

6 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

如果您将某一天默认为每个月的第一天,则可以使用以下内容。

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

你走了:

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

答案 5 :(得分:0)

您无法直接将此转换为日期时间。 我建议的一个选项是将其拆分为年份和月份,然后通过添加01作为日期ex来创建任何日期格式:如果格式为YYYY / MM / DD则2015/01/01 并最终使用这个 选择日期名称(月份,' 2015/01/01')