易表在线答疑技术与交流用户社区 → [讨论]时段型的数据主要用于哪些方面?


  共有7052人关注过本帖树形打印复制链接

主题:[讨论]时段型的数据主要用于哪些方面?

帅哥哟,离线,有人找我吗?
花落无痕
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:187 积分:206 威望:0 精华:0 注册:2007/1/10 13:19:00
[讨论]时段型的数据主要用于哪些方面?  发帖心情 Post By:2013/3/20 15:31:00 [只看该作者]

问题如标题

 回到顶部
美女呀,离线,留言给我吧!
dancedy
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2721 积分:4555 威望:0 精华:0 注册:2011/5/12 17:20:00
  发帖心情 Post By:2013/3/20 16:01:00 [只看该作者]

时间计算

  • 两种列类型
    易表有两种和时间有关的列类型,时间型和时段型,前者表示某一个日期或时间,后者表示一个时间间隔。
有效的时间数据 99-01-01
12:30:12
有效的时段数据 28:12 
12:30:12
无效的时间数据 28:12
无效的时段数据 99-01-01
  • 如何得到时间间隔
    利用函数Number可以计算时间间隔,例如:
    Number($"1999-3-1") - Number($"1999-2-1") = 28
    Number($"7:30") - Number($"1:30")  = 0.25
    Number函数是将时间转换为以日为单位的数字,所以用这种方式计算得出的时间间隔是以日为单位的。
     
  • 时段数据的特别之处
    时段型数据通常表示两个时间的间隔,并且是以秒为单位的(尽管显示为时分秒),所以用Number得到两个时间的间隔之后,还必须乘以每天的秒数(86400),才能得到真正的时段型数据,例如:
    (Number($"7:30") - Number($"1:28")) * 86400 = 6:02
    需要的注意的是,上述的公式只有用在时段型列才有效,否则会得到以秒表示的时间间隔:
    (Number($"7:30") - Number($"1:28")) * 86400 = 21720
    可以用CTime函数将数值转换为时段数据,例如:
    CTime(21720) = 6:02
    时段数据可以直接进行加减,例如下图中,后三列全部为时段型,合计列的刷新公式为:[上班时间] + [加班时间]


     
  • 示例一
    在打字速度考试中,知道每个学员的用时和字数,如何求得每分钟的平均打字速度呢?很简单,将“用时”列设为时段型,时段型数据参与运算的时候,将转换为以秒为单位的数值,例如时段“0:01:30”等于90秒,所以将转换为数值90参与计算。综上所述,平均每分钟打字速度的计算公式为:
    [字数] / [用时] * 60


  • 示例二
    在一个工资管理系统中,员工每天的工资按小时计算,每小时的工资为8元,那么工资列的刷新公式应该为:
    (Number([下班时间]) - Number([上班时间]))  * 24 * 8
    如果需要知道每人每天的工作时间长度,可增加一列“工作时数”,将其列类型设为时段型,刷新公式设为:
    (Number([下班时间]) - Number([上班时间])) * 86400
    然后将工资列的刷新公式设为:
    [工作时数]/3600 * 8


    怎么理解上面的公式呢,函数Number求出的时间差是以天为单位,乘以24才是小时数,乘以86400(24 * 3600)得到的才是时段数据。

 回到顶部
帅哥哟,离线,有人找我吗?
花落无痕
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游民 帖子:187 积分:206 威望:0 精华:0 注册:2007/1/10 13:19:00
  发帖心情 Post By:2013/4/16 13:49:00 [只看该作者]

谢谢。

 回到顶部