如何将字符串转换为日期格式?

时间:2016-01-12 11:49:07

标签: sql oracle date to-date

大家好,请帮帮我......

下面提到的行是一列数据。

column1:Supplier Setup request submitted on 2016-01-06 06:00:25.141 by WFS ADMINISTRATOR

我想分为两列,如columnAcolumnB

columnA                   columnB
WFS ADMINISTRATOR        2016-01-06 06:00:25.141

我使用子字符串和instring函数编写了查询:

select SUBSTR(column1, INSTR(column1,'on',1)+2, INSTR(column1,'by',1)-INSTR(column1,'on',2)-2) as columnB
from xyz 

工作正常,但我希望显示日期格式,如MM/DD/YYYY HH24:MI:SS

我无法获得日期格式......

2 个答案:

答案 0 :(得分:0)

假设columnB现在持有日期部分:

to_date(columnB,'MM/DD/YYYY HH24:MI:SS');

答案 1 :(得分:0)

您可以使用

获取日期时间部分
regexp_replace(col, '.*on (.*) by.*', '\1')

您可以使用

将此类字符串转换为时间戳
to_timestamp(str, 'yyyy-mm-dd hh24:mi:ss.ff') 

您可以使用

将时间戳转换为格式为MM/DD/YYYY HH24:MI:SS的字符串
to_char(ts, 'mm/dd/yyyy hh24:mi:ss')

合:

to_char
(
  to_timestamp
  (
    regexp_replace(col, '.*on (.*) by.*', '\1'), 'yyyy-mm-dd hh24:mi:ss.ff'
  ), 'mm/dd/yyyy hh24:mi:ss'
)