SQL-如何将YYYYMM数字转换为日期

时间:2018-07-05 09:20:15

标签: sql

因此,我对SQL还是一个​​新手,我有一列数字,以YYYYMM格式(即2016年7月的201607)列出了年份和月份。我想知道的是,是否可以在SQL中将其转换为正确的日期格式。我进行了相当多的研究,并且看到了很多有关将YYYYYMMDD格式转换为日期的答案,但仅输入了6个字符就没有多少。

有人有什么主意吗?

4 个答案:

答案 0 :(得分:2)

假设每个人都是该月的第一天(即201807将是2018-07-01):

CONVERT(date, YourColumn + '01')

如果您需要该月的另一天,则需要提供更多详细信息。

答案 1 :(得分:1)

如果需要,您可以这样做:

   select *, FORMAT(DATEFROMPARTS(1900, right(YearMonthKey,2), 1), 'MMMM', 'en-US') +' '+ Left(YearMonthKey,4)  as MonthYearName from (
select 201709 as YearMonthKey
)x

结果

enter image description here

答案 2 :(得分:-1)

将您的字符串从YYYYMMDD转换为YYYY-MM-DD,然后使用str-to-date https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html#function_str-to-date

答案 3 :(得分:-1)

对于甲骨文:

TO_CHAR(TO_DATE('201607', 'YYYYMM'), '月 YYYY')

结果:2016 年 7 月

TO_CHAR(TO_DATE('201607', 'YYYYMM'), 'DD Month YYYY')

结果:2016 年 7 月 1 日

它将使用 01 作为默认日期,因此您可以格式化您想要的格式