以文本方式查看主题
- 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp)
-- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2)
---- [讨论]时段型的数据主要用于哪些方面? (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=24635)
|
-- 作者:花落无痕
-- 发布时间:2013/3/20 15:31:00
-- [讨论]时段型的数据主要用于哪些方面?
问题如标题
|
-- 作者:dancedy
-- 发布时间: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)得到的才是时段数据。
|
-- 作者:花落无痕
-- 发布时间:2013/4/16 13:49:00
--
谢谢。
|