如何将oracle时间戳转换为postgres?

时间:2014-09-29 17:17:07

标签: sql oracle postgresql

如何将oracle时间戳转换为postgres时间戳,我们在oracle数据库中有一个值,如下所示,

15-JUN-2014 01.00.00.0000 PM

我在postgres / Greenplum中存储了varchar。我如何在postgres中投射到时间戳,

需要输出如下,

15-06-2014 13.00.00.0000

24小时格式。

2 个答案:

答案 0 :(得分:3)

时间戳是时间戳。它们使用内部表示来表示日期(包括时间)。但是您可以使用各种formats将时间戳转换为字符串/从字符串转换。例如,如果您需要显示它们或将数据导出到需要特定表示的其他软件。

在以下Oracle代码中,我使用与第一个示例对应的格式将字符串转换为时间戳(TO_TIMESTAMP)。然后我"转回"使用与第二个表示形式对应的其他格式将时间戳添加到字符串(TO_CHAR):

-- Convert a string to a timestamp
WITH sample_data AS 
  (SELECT TO_TIMESTAMP('15-JUN-2014 01.00.00.0000 PM', 
                       'DD-MON-YYYY HH12.MI.SS.FF4 PM') ts FROM DUAL)

-- Convert a timestamp to a string using a format corresponding
-- to "15-06-2014 13.00.00.0000"
SELECT TO_CHAR(ts, 'DD-MM-YYYY HH24.MI.SS.FF4') as result FROM sample_data;

制作(字符串):

result
15-06-2014 13.00.00.0000

请注意,您也可以使用(差不多?)完全相同的date functions and formats在PostgreSQL中从字符串转换为日期。

答案 1 :(得分:0)

SELECT To_timestamp(event_timestamp,'DD-MON-YY HH12.MI.SS.SSSS AM.PM')::timestamp without time zone
FROM jiodba.ext_wfa_accounting_msg limit 1000;

请找到答案