到目前为止的转换数

Joh*_*ohn 0 sql oracle date to-char

我有下表.是否可以将Month列转换为日期?

ID    Month
 1    201805
Run Code Online (Sandbox Code Playgroud)

预期成绩:

Id  Month    Date
1   201805   5/1/2018
Run Code Online (Sandbox Code Playgroud)

Ale*_*ole 6

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

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

TO_DATE(TO_CHAR(201
-------------------
2018-05-01 00:00:00
Run Code Online (Sandbox Code Playgroud)

您不需要在值中显式添加日期编号(如@HoneyBadger所示,或者在转换为字符串后连接),因为它将默认为当月的第一个.

所以你需要做类似的事情

to_date(to_char(month), 'YYYYMM')
Run Code Online (Sandbox Code Playgroud)

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


目前尚不清楚您是否打算将此作为查询的一部分(可能在视图中)或想要修改表格; 如果是后者,则可以使用虚拟列来避免重复数据,并且如果月份发生变化则必须保持转换后的值.