我有一个名为 tran_datetime
的字段,它是一个 14 位数字字段。
值存在为 20130216131736 ...即 2013-02-16 01:17:36 PM
在查询导出中,我需要将最后 6 位数字转换为时间戳。
这是我发现的最接近的版本。
(SUBSTRING(tran_datetime,9,2) || ':' || SUBSTRING(tran_datetime,11,2) || ':' || SUBSTRING(tran_datetime,13,2)) ,
但这返回的时间为 13:17:36。我正在尝试找到一种将其转换为 01:17:36 PM 格式的方法。
类似这样的事情...
to_char((SUBSTRING(tran_datetime,9,2) || ':' || SUBSTRING(tran_datetime,11,2) || ':' || SUBSTRING(tran_datetime,13,2)), 'HH12:MI:SS')
或
cast((SUBSTRING(tran_datetime,9,2) || ':' || SUBSTRING(tran_datetime,11,2) || ':' || SUBSTRING(tran_datetime,13,2)) as TIMESTAMP)
但我尝试的大多数操作都会出错,最常见的是时间戳超出范围
最佳答案
这应该适合你。
select to_char(cast('131736' as time),'HH12:MI:SS AM')
如果我做出了错误的假设,请发表评论,我会重新调整我的答案。
关于sql - 在 Redshift 中将数字日期时间转换为 AM PM 时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44029192/