将整数转换为时间
问题描述:
答
这是一种通过一系列的内置功能来完成一个相当容易的事情。
to_char(floor(field/60) || ':' || to_char(mod(field, 60), 'FM00')
其分解:
- 获取的小时数:
to_char(floor(field/60)
-
field/60
得到我们的小时 -
floor()
数量确保我们不必处理小数点 -
to_char()
将它转换为一个字符串,所以我们可以连接它。
-
- 添加 ':'
|| ':' ||
- 获取分钟数
-
mod(field, 60)
得到的field/60
-
to_char()
剩余再次转换为字符串的CONCAT步 -
'FM00'
保证我们保持领先的零。
-
很显然,你需要与任何在你的数据库中的字段被称为取代field
。
+0
感谢您提供解决方案。它的工作现在很好。 –
+0
@VenugopalSeetharaman:如果这回答了您的问题,请考虑接受它通过点击投票按钮复选标记:) – Jacobm001
答
您可以使用to_date内置函数将整数转换为有效时间。
例
SQL> select to_char (to_date ('2300', 'HH24MI'), 'HH:MI AM') integer_time from dual;
+0
它只能工作12小时,我不认为AM/PM是必需的。 –
请[编辑您的问题(https://stackoverflow.com/posts/45719693/edit),包括样本数据,预期结果,以及你已经尝试过(什么它是错的)。结果应该是什么样的数据类型?时间可以超过24小时,如果有的话会发生什么? –
另外[可能是重复](https://stackoverflow.com/q/11931574/266304)。 –