我在一列中有 2 行,其中一行为我提供儒略日期(自 1970 年 1 月 1 日以来的天数,当天为 1),第二列是当天午夜后的分钟数(为什么这样做,我不知道)。
我想让我的 sql 查询从这两列中创建时间戳。
如果我可以提前访问数据,我可以做类似SELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'X DAYS' + INTERVAL 'Y MINUTES' AS my_time FROM mytable
,但由于 X 和 Y 是我正在查询的表的实际成员,所以事情没那么简单。
有人有什么建议吗?
本质上,我正在寻找等效的[合法]解决方案:
SELECT timestamp '1970-01-01 00:00:00' + INTERVAL 'my_col1 DAYS' + INTERVAL 'my_col2 MINUTES' AS my_time FROm mytable
我可以让我的服务器端代码为我做这件事,但如果我可以将它构建到我的查询中,我会很高兴。
最佳答案
您可以构造区间字符串,然后将它们转换为 interval
类型:
SELECT
timestamp '1970-01-01 00:00:00' +
cast(my_col1 || ' DAYS' AS interval) +
cast(my_col2 || ' MINUTES' AS interval) my_time FROM mytable
关于sql - 从 postgres 中的列创建时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3417802/