2014-09-29 59 views
0

如何在Oracle時間戳Postgres的時間戳轉換,我們有如下ORACLE數據庫一個值,如何將oracle時間戳轉換爲postgres?

15-JUN-2014 01.00.00.0000 PM 

我已經存儲在Postgres的/ Greenplum的VARCHAR。我怎樣才能在投給Postgres的時間戳,需要如下

輸出,

15-06-2014 13.00.00.0000 

由於24小時格式。

+1

時間戳不具有「格式」 - 無論是在Oracle和Postgres裏(或任何其他DBMS)。你如何傳輸數據?你如何連接兩個數據庫? – 2014-09-29 17:49:33

+0

from oracle我們正在生成csv文件並加載到greenplum中,在這種情況下,我無法將am/pm轉換爲postgress/greenplum中的24小時格式。 – 2014-09-29 18:00:40

+0

爲什麼不立即使用正確的時間戳格式創建CSV文件? – 2014-09-29 18:51:52

回答

3

時間戳是時間戳。它們代表使用內部表示法的日期(包括時間)。但是您可以使用各種formats將時間戳轉換爲字符串/從字符串轉換。例如,如果您需要顯示它們或將數據導出到需要某種特定表示的其他軟件。

在以下Oracle代碼中,我使用與第一個示例相對應的格式將字符串轉換爲時間戳(TO_TIMESTAMP)。

-- 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; 

生產(該字符串):然後我使用與您的第二表示的其他格式時間戳「轉換回」到一個字符串(TO_CHAR

result 
15-06-2014 13.00.00.0000 

請注意,您可以使用(幾乎?)完全相同的date functions and formats從PostgreSQL中的字符串轉換爲日期。

+0

仍然不能工作,它不會轉換爲24小時格式'select TO_TIMESTAMP(event_timestamp,'DD-MON- YY HH24.MI.SS.FF4'):: TIMESTAMP WITHOUT TIME ZONE from jiodba.ext_WFA_ACCOUNTING_MSG limit 100 - 「2014-07-01 12:01:18」 – 2014-09-29 18:21:59

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; 

請找到答案

相關問題