2017-05-03 64 views
0

需要幫助將varchar字段轉換爲時間戳。將varchar字段轉換爲日期字段

領域是在'5/2/2017 9:45:29 AM'格式,以便MM/DD/YYYY HH:MI:SS AM

我已經能夠獲得年份,月份和日期,但無法得到時,分,秒。這是我做了什麼:

SELECT 
    '5/2/2017 9:45:29 AM' as data 
    , to_date('5/2/2017 9:45:29 AM', 'MM/DD/YYYY HH24:MI:SS') 
    , to_char(to_date('5/2/2017 9:45:29 AM', 'MM/DD/YYYY HH12:MI:SS PM'), 'YYYYMMDD') 

返回:

data    | to_date    | to_char 
------------------------------------------------------------ 
5/2/2017 9:45:29 AM | 2017-05-02 00:00:00 | 20170502 

我一直在玩與周圍的to_date功能,但不能得到任何工作。我還包括AM,但是沒有做任何事情。不知道還有什麼在這一點上

+0

'SELECT CAST('5/2/2017 9:45:29 AM'as timestamp)'?.. –

回答

2

嘗試時間戳:

t=# select cast('5/2/2017 9:45:29 AM' as timestamp); 
     timestamp 
--------------------- 
2017-05-02 09:45:29 
(1 row) 

,你可以投它打上時間戳,然後轉換爲時間:

t=# with t as (
    with v as (
    select '5/2/2017 9:45:29 AM'::text v 
) 
    select v::timestamp t 
    from v 
) 
select t::date to_date, t::time to_time, t to_timestamp 
from t; 
    to_date | to_time | to_timestamp 
------------+----------+--------------------- 
2017-05-02 | 09:45:29 | 2017-05-02 09:45:29 
(1 row) 
+0

完美 - 我從來沒有想過先投到時間戳。 – simplycoding

相關問題