早上好团队,
我有一个Oracle SQL脚本,它从创建事件开始计算,并计算与systimestamp相比有多少分钟。我需要转换分钟,这是出来为120为2小时,例如,到小时:分钟版本,即。两点
我正在努力解决这个问题,想问一下是否有人可以帮助我?我目前的计算代码是:
(ROUND(((cast(systimestamp as date) - cast(n.createdttm as date)))*1440,0)) "Minutes old",
字符串
我相信这是一个简单的东西,但我所有的摆弄我不能得到它。
谢谢你的好意
4条答案
按热度按时间oaxa6hgo1#
您可以创建一个
INTERVAL
形式的分钟。字符串
或者从分钟创建日期时间,并将其时间部分转换为小时和分钟字符串。
型
t1rydlwq2#
看起来
createdttm
是一个时间戳,所以你可以减去:字符串
...得到一个像
+000000000 02:00:00.00000
这样的区间值。您不能直接格式化它,但是您可以提取各种元素并将它们连接在一起,或者将其视为字符串并删除所需的位。如果你只想要时间部分,它总是少于一天,你可以这样做:
型
但是如果它可以超过24小时,那么你可能也想要一天的部分,如果你知道它永远不会超过2天,你仍然可以使用substr(也许可以替换将空格改为另一个冒号):
型
不过,这不太可能是一个安全的假设,所以你可以提取天数并将其连接起来:
型
如果天数不为零,你可以只显示天数,但这可能会让查看结果的人感到困惑;如果你真的想:
型
db<>fiddle与几个样本值。
需要注意的一点是,这有效地截断了时间的秒数;您最初的尝试包括
round()
,但这可能不是您的本意。uelo1irk3#
如果你想把分钟转换成小时和分钟。如果x是分钟数(例如350):
字符串
如果你想转换小时和分钟到分钟。
型
其中X是数字。如果你有一个sting,s,那么使用TO_NUMBER(s)代替x。
cig3rfwq4#
字符串