postgresql - 将字符串转换为时间

3 sql postgresql time date

我有保存交易时间的列,格式为 HHMMSS 例如:

140159
013115
235900
Run Code Online (Sandbox Code Playgroud)

然后我想将这些时间转换为 HH:MM AM/PM 所以结果是:

2:01 PM
1:31 AM
11:59 PM
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的查询,但没有一个返回我想要的结果..

SELECT TO_CHAR(TO_TIMESTAMP(TRANSTIME,'hh24:mi:ss AM'),'hh12:mi:ss AM')
FROM PRODUCTSALES order by TRANSTIME desc LIMIT 100


SELECT  TO_TIMESTAMP(TRANSTIME, 'HH24:MI')::TIME
Run Code Online (Sandbox Code Playgroud)

Vao*_*sun 7

时间数据类型只是时间 - 不是格式。获取所需格式的时间to_char,例如从您的140159

t=# select to_char('140159'::time,'HH:MI AM');
 to_char
----------
 02:01 PM
(1 row)
Run Code Online (Sandbox Code Playgroud)

请注意,我首先将其转换为时间,然后才对其进行格式化