需要帮助将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 :(得分: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)