如何将整数(时间)转换为 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”创建日期

如何将 datetime 对象的时间转换为整数?

如何将具有负整数的NSString转换为负整数

如何将长整数时间转换为 NSString 或 NSDate 以显示时间?

如何将一串大数转换为整数?

如何将多个整数的列表转换为单个整数?