Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有任何oracle sql函数可以帮助将时间表示为24小时32分钟30秒_Sql_Oracle - Fatal编程技术网

是否有任何oracle sql函数可以帮助将时间表示为24小时32分钟30秒

是否有任何oracle sql函数可以帮助将时间表示为24小时32分钟30秒,sql,oracle,Sql,Oracle,是否有任何oracle sql函数可以帮助显示时间,因为目前我正在汇总一列的时间,并以小时为单位计算时间 时间 892.26(小时) 要求 时间(在同一列中)892小时26分钟 请建议可以做什么。也许您应该重新考虑数据模型。如果将时间存储为数字,如893.26,并将其视为892小时26分钟,则每次计算都会很复杂 您最好只将值存储为分钟,如53546(分钟),它来自于简单的计算,893 x 60+26。然后,您可以通过+或-简单地在值之间进行加减,并通过简单的计算将其表示为小时和分钟: hours

是否有任何oracle sql函数可以帮助显示时间,因为目前我正在汇总一列的时间,并以小时为单位计算时间

时间 892.26(小时)

要求

时间(在同一列中)892小时26分钟


请建议可以做什么。

也许您应该重新考虑数据模型。如果将时间存储为数字,如
893.26
,并将其视为
892小时26分钟
,则每次计算都会很复杂

您最好只将值存储为分钟,如
53546
(分钟),它来自于简单的计算,
893 x 60+26
。然后,您可以通过
+
-
简单地在值之间进行加减,并通过简单的计算将其表示为小时和分钟:

hours = trunc(value / 60)
minutes = mod(value, 60)
这可以在SQL中完成:

select trunc(value / 60) || ' hrs ' || mod(value, 60) || 'min'
from ...

若最小刻度为秒,则应将每个值存储在秒中。这可以使事情比您现在使用的方式简单得多。

.26小时!=26分钟。您需要某种显示时间戳的日期格式吗?我相信没有这种功能,但您可以自己格式化结果,尝试使用类似的方法(假设您的时间和列是一个数字):
选择trunc(time_sum)| |'hrs'|((time_sum-trunc(time_sum))*60)||“min”来自_表的_时间是正确的。没有这样的功能。日期的存储方式不同于数字。很可能您正在尝试处理间隔,即数字。也许您可以使用
CAST(…作为从一天到一秒的间隔)
,但仍然不清楚。或者使用数据类型。谢谢大家,它帮助了很多