易表在线答疑技术与交流用户社区 → [求助]请问在表设计中的列类型中时段型如何使用?


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

主题:[求助]请问在表设计中的列类型中时段型如何使用?

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


加好友 发短信
等级:论坛游民 帖子:187 积分:206 威望:0 精华:0 注册:2007/1/10 13:19:00
[求助]请问在表设计中的列类型中时段型如何使用?  发帖心情 Post By:2010/11/4 9:46:00 [只看该作者]

无内容

 回到顶部
帅哥哟,离线,有人找我吗?
lyang70
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2010/11/4 10:41:00 [只看该作者]

帮助文件中有时间与时段的说明,去看看吧...

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


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

在帮助文件的哪个项目里啊?

 回到顶部
帅哥哟,离线,有人找我吗?
lyang70
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5115 积分:862 威望:0 精华:0 注册:2006/8/15 16:57:00
  发帖心情 Post By:2010/11/4 14:31: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)得到的才是时段数据。

-=-=-=- 以下内容由 lyang702010年11月04日 02:33pm 时添加 -=-=-=-
——你在帮助文件的搜索框中输入“时段”即可看到相关内容。


 回到顶部