在我的案例中,如何将varchar2格式值转换为Oracle中的datetime类型?

时间:2016-05-24 05:37:45

标签: sql oracle datetime

我有以下格式的数据 -

Fri, May 13, 2016 at 10:54 PM

该值以varchar2类型插入。

我想将其转换为datetime类型以插入另一列。

这怎么可能?

2 个答案:

答案 0 :(得分:2)

您可以使用正则表达式从文本字符串中提取日,月,年和时间,并使用to_date将其转换为日期:

WITH your_table AS (
  SELECT 'Fri, May 13, 2016 at 10:54 PM' text_date FROM DUAL
)
SELECT TO_DATE(REGEXP_REPLACE(text_date, '(\w{3}), (\w{3}) (\d{1,2}), (\d{4}) at (\d{1,2}:\d{2}) (AM|PM)','\3-\2-\4 \5 \6'),'DD-MON-YYYY HH:MI AM') adate
FROM your_table

答案 1 :(得分:2)

根本不需要正则表达式:

WITH your_table AS (
  SELECT 'Fri, May 13, 2016 at 10:54 PM' text_date FROM DUAL
)
SELECT
    TO_DATE(text_date, 'DY, Mon DD, YYYY "at" HH:MI AM', 'NLS_DATE_LANGUAGE = ENGLISH') adate
FROM your_table