我有以下公式将持续时间转换为小时。我想做的情况是,任何15分钟或更长的时间都被认为是一个小时。例如,1小时15分钟将计算为2小时,2小时15分钟将计算为3小时等等。如果一小时后不到15分钟,就会比小时少。1小时5分钟将被视为1小时。
(( T0.DurType时间'M‘然后( T0.Duration /100)/.60时'D’然后(T0.Duration*8)其他T0.Duration结束))作为‘持续时间’
发布于 2013-12-21 16:30:14
case语法是否出于某种原因而需要,还是仅仅是您最初选择的方法?Duration的每一个增量代表哪个时间单位,1秒,1分?假设如下:
case语法Duration每增加1分钟下面是正确的公式,使用ceiling而不是case
ceiling(T0.Duration/60) as "Duration"这将使任何部分十进制值增加到下一个最高整数,例如,75分钟/ 60 = 1.25小时,上限将增加到2.180分钟/ 60 = 3.00小时,上限将输出3。
编辑:我不知道你用sql和水晶实现它是什么意思.如果您在sql中计算它,它将传递给Crystal,并且不需要任何进一步的转换。不管怎样,这两种解决方案都是:
iif来添加1或0:
MINUTES \ 60 + IIF (MINUTES mod 60 >= 15,1 , 0)floor(MINUTES / 60) + IF( (MINUTES % 60) >= 15,1 , 0)https://stackoverflow.com/questions/20686982
复制相似问题