PostgreSQL中如何将TIME类型字段值添加到TIMESTAMP类型字段上
原生SQL实现TIMESTAMP字段叠加TIME字段的方案
完全可以实现,不需要自定义函数,主流数据库都有原生语法支持,核心逻辑是将TIME类型的值作为时间间隔叠加到TIMESTAMP类型上,不同数据库的实现写法如下:
- PostgreSQL
原生支持两种类型直接做加法运算,写法最简单:SELECT field_a + field_b AS calculated_result FROM your_table; - MySQL
调用原生内置函数ADDTIME即可:SELECT ADDTIME(field_a, field_b) AS calculated_result FROM your_table; - Oracle
先将TIME类型转换为天间隔时间类型再做加法:SELECT field_a + TO_DSINTERVAL('0 ' || field_b) AS calculated_result FROM your_table; - SQL Server
用原生DATEDIFF+DATEADD组合实现:SELECT DATEADD(SECOND, DATEDIFF(SECOND, '00:00:00', field_b), field_a) AS calculated_result FROM your_table;
注意:如果
field_b存储的时间值超过24小时,PostgreSQL、MySQL等主流数据库都会自动按天进位叠加,无需额外处理。
内容的提问来源于stack exchange,提问作者Karord
相关产品推荐
相关产品推荐

