因此,我对SQL还是一个新手,我有一列数字,以YYYYMM格式(即2016年7月的201607)列出了年份和月份。我想知道的是,是否可以在SQL中将其转换为正确的日期格式。我进行了相当多的研究,并且看到了很多有关将YYYYYMMDD格式转换为日期的答案,但仅输入了6个字符就没有多少。
有人有什么主意吗?
答案 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
结果
答案 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 作为默认日期,因此您可以格式化您想要的格式