sql - 在 PostgreSQL 中按小时转换整数

标签 sql postgresql time syntax casting

我有一个作为整数传递的数字,我想将它转换为时间,并将这个数字用作小时。

我找到了使用数字作为分钟的解决方案,但我不熟悉 PostgreSQL 语法。不确定在这里做什么:

select CAST(to_char(czas, 'FM99909:99') AS TIME WITHOUT   
TIME ZONE)::TIME from test

结果是:

00:15:00

但我正在寻找实现它的方法:

15:00:00

我使用 MS SQL 已经有一段时间了,我很惊讶 PostgreSQL 的语法要复杂得多。

最佳答案

如果您的 test.czas 列表示 小时 只需乘以 interval '1 hour':

SELECT (interval '01:00' * czas)::time FROM test;

即使是小数位,也能准确地产生您想要的结果。

'01:00''1 hour' 是等价的 interval literals .
对于 czas > 24,您将获得剩余部分(全天截止)- 就像您使用 czas%24 一样。

相关:

关于sql - 在 PostgreSQL 中按小时转换整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46739095/

相关文章:

sql - 如何使用分析窗口 SQL 函数在同一数据集的行组中查找 id 值

sql - 添加新列作为两行之间的差异

python - 如何将两个字段的总和与 Django 中同一模型上的另一个字段进行比较

Php 时钟 2 小时后退

javascript - 计算hh中的时间差:mm:ss with simple javascript/jquery

sql - 在 SQL Server 2008 中查找 SQL 锁的最佳方法

sql - 一种编写检查约束的更好方法,用于检查一个值是否不为空

sql - 索引所有列

java - 将 X 小时添加到日期和时间

SQL Server,where 子句与不同类型的比较和默认转换行为