首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算时数的案例陈述

问计算时数的案例陈述
EN

Stack Overflow用户
提问于 2013-12-19 16:37:26
回答 1查看 905关注 0票数 0

我有以下公式将持续时间转换为小时。我想做的情况是,任何15分钟或更长的时间都被认为是一个小时。例如,1小时15分钟将计算为2小时,2小时15分钟将计算为3小时等等。如果一小时后不到15分钟,就会比小时少。1小时5分钟将被视为1小时。

(( T0.DurType时间'M‘然后( T0.Duration /100)/.60时'D’然后(T0.Duration*8)其他T0.Duration结束))作为‘持续时间’

EN

回答 1

Stack Overflow用户

发布于 2013-12-21 16:30:14

  1. 您是在SQL中还是作为水晶中的公式字段执行此操作?
  2. case语法是否出于某种原因而需要,还是仅仅是您最初选择的方法?
  3. Duration的每一个增量代表哪个时间单位,1秒,1分?

假设如下:

  • 这在sql中。
  • 不需要case语法
  • Duration每增加1分钟

下面是正确的公式,使用ceiling而不是case

代码语言:javascript
复制
ceiling(T0.Duration/60) as "Duration"

这将使任何部分十进制值增加到下一个最高整数,例如,75分钟/ 60 = 1.25小时,上限将增加到2.180分钟/ 60 = 3.00小时,上限将输出3。

编辑:我不知道你用sql和水晶实现它是什么意思.如果您在sql中计算它,它将传递给Crystal,并且不需要任何进一步的转换。不管怎样,这两种解决方案都是:

  • 水晶:假设使用分钟。"\“运算符是整数除法,因此小数被删除。如果剩余分钟为15分钟或更长时间,则使用一个简单的if / to / iif来添加1或0: MINUTES \ 60 + IIF (MINUTES mod 60 >= 15,1 , 0)
  • 在SQL (MySQL语法,MSSQL/TSQL可能有所不同)中,实现如下相同: floor(MINUTES / 60) + IF( (MINUTES % 60) >= 15,1 , 0)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20686982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档