数字到日期的转换

时间:2018-10-24 11:28:34

标签: sql oracle date to-char

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

ID    Month
 1    201805

预期结果:

Id  Month    Date
1   201805   5/1/2018

1 个答案:

答案 0 :(得分:6)

您可以仅将to_date()与适当的格式掩码一起使用,例如以固定值作为演示:

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

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

由于it will default to the first of the month仍然不需要为该值显式添加天数(如@HoneyBadger所示,或在转换为字符串后进行串联)。

所以您需要做类似的事情

to_date(to_char(month), 'YYYYMM')

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


尚不清楚您打算将其作为查询的一部分(也许在视图中)还是要修改表;如果是后者,那么您可以使用虚拟列来避免重复数据,并且如果月份变化,则必须保持转换后的值。