数字到日期转换

Number to date conversion

我有以下Table。是否可以将月份列转换为日期?

ID    Month
 1    201805

预期结果:

Id  Month    Date
1   201805   5/1/2018

您可以只使用带有 suitable 格式掩码的 to_date(),例如以固定值作为演示:

select to_date(to_char(201805), 'YYYYMM') from dual;

TO_DATE(TO_CHAR(201
-------------------
2018-05-01 00:00:00

您不需要明确地向值添加天数(如@HoneyBadger 所示,或在转换为字符串后通过连接),因为无论如何 it will default to the first of the month

所以你需要做类似

的事情
to_date(to_char(month), 'YYYYMM')

可以跳过 to_char() 部分,因为无论如何数字都会隐式转换为字符串,但包含它会更完整。


不清楚您是打算将此作为查询的一部分(可能在视图中)还是要修改 table;如果是后者,那么您可以使用虚拟列来避免重复数据,并且在月份发生变化时必须维护转换后的值。