如何将整数(时间)转换为 HH:MM:SS::00 正在进行 SQL
Posted
技术标签:
【中文标题】如何将整数(时间)转换为 HH:MM:SS::00 正在进行 SQL【英文标题】:How to convert an integer (time) to HH:MM:SS::00 in Progress SQL 【发布时间】:2021-12-22 06:03:30 【问题描述】:我需要创建一个 SQL 脚本来将整数字段转换为 varchar。我的数据库是 Progress DB。 此整数字段 (nrHoraRegistro) 具有转换为整数的时间戳。
有没有办法在 Progress SQL 中编写查询来转换它?
亲切的问候, 朱利亚诺
【问题讨论】:
值54671
在时间方面是什么意思?你想用什么公式?
你好@TheImpaler,54671 是 15:11:11,HH:MM:SS。我是使用 Disp String(nrHoraRegistro,'HH:MM:SS') 得到的。
所以这个数字是从午夜开始的秒数。
嗯好的,尽管如此.. 你知道我怎样才能知道自午夜以来的秒数的 HH:MM:SS 吗?
【参考方案1】:
基于我之前给出的answer:
select
to_char(
timestampadd(
sql_tsi_second,
nrHoraRegistro,
curdate()
),
'hh24:mi:ss'
)
from
pub.testtable
【讨论】:
您好,谢谢!你的解决方案要好得多:)【参考方案2】:好吧,作为一种解决方法,我做了:
SELECT right('00' + to_char(floor(54671/3600)), 2) + ':' +
right('00' + to_char(MOD(54671,3600)/60), 2) + ':' +
right('00' +to_char(MOD(MOD(54671,3600),60)) , 2) as nrHoraRegistro
来自 PUB.XXX
【讨论】:
【参考方案3】:您可以使用此转换:
SELECT (to_timestamp(54671) at time zone 'UTC')::time
结果如下:
Returned value:
+----------+
| 15:11:11 |
+----------+
【讨论】:
嗨,使用 SQL Explorer 吗? 它是纯 PostgreSQL,您可以在查询中将 54671 替换为列名 (nrHoraRegistro),它会像魅力一样工作。 我没有使用 PostgreSQL,我使用的是 Progress DB以上是关于如何将整数(时间)转换为 HH:MM:SS::00 正在进行 SQL的主要内容,如果未能解决你的问题,请参考以下文章
无法从格式“yyyy-MM-dd'T'HH:mm:ss+00:00”创建日期