【发布时间】:2014-04-09 14:22:41
【问题描述】:
所以我这里有这段代码:
create or replace FUNCTION calc_length(
START_TIME IN number,
FINISH_TIME IN number
) RETURN NUMBER IS
BEGIN
RETURN ( (FINISH_TIME - START_TIME ) ;
END
我想以H:mm的格式显示结果
我尝试了TO_CHAR 函数,但它接受严格的预设格式。
【问题讨论】:
-
初始时间精度是多少?这些 start_time 和 end_time 是以小时、分钟或秒的形式传递给您的程序,还是以天为单位?一旦你决定了时间精度,算术就变得非常简单了。此外,为什么不使用
date或timestamp数据类型的值呢? -
@NicholasKrasnov 让我们说开始时间是 1205,结束时间是 1355,所以这会给我一个 150 的差异,代表 1h50m
-
有趣。尽管
start_time和end_time的这些值代表什么,但您没有回答我的问题。但从您的示例来看,数字 1355 是 13 小时 55 分钟,而 1205 是 12 小时 05 分钟。问题是在这种情况下end_time和start_time之间的区别不应该是 1 小时 30 分钟而不是 1 小时 50 分钟吗?否则......奇怪的算术。 -
@NicholasKrasnov 我的道歉!这些值采用
NUMBER格式,因此1215代表12:15,1355代表13:55。问题是,如果我将end-time - start_time的结果乘以0.01,那么我得到Hours.Minutes格式的时间我将如何在小数点之间的值之前拆分值,所以如果我得到2.25,我将它们拆分为2和25
标签: oracle plsql oracle-apex