Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

数据表中如何存储大于24小时的飞行时间

福瑞  发表于:2009-11-05 20:46:59  
复制

飞行时间如何在数据表中存贮,例如40小时50分钟,即40:50;另外这样的时间能计算吗?这样的时间在窗体中的控件中能否正常显示,其格式还能保持吗?请教高手

 

Top
andymark 发表于:2009-11-05 20:57:02

飞行时间如何在数据表中存贮,例如40小时50分钟,即40:50

 

大于24,好像数据自动进位换成天的吧

 

 

储存这样的数据用文本类型,换算需要加工处理,用REPLACE或INSTR分解,分别合计再合拼成时间格式

 

 



福瑞 发表于:2009-11-05 21:01:49

换句话说,就是把小时和分钟单独存放为两个字段,分别计算,然后合并在一个文本控件中。我理解的对吗?



andymark 发表于:2009-11-05 21:07:24

也可以这样

 

小时和分钟存在一个字段也行,换算麻烦一点,根据实际取舍



福瑞 发表于:2009-11-05 21:09:40

非常感谢您



trynew 发表于:2009-11-06 10:18:50

楼主问了好几个飞行时间的问题,可能是对日期时间的显示、保存、计算还是有点模糊。

首先日期格式的数值本身是一个数字,这个数代表在一个以1900年1月1日0点0分为原点,天数为坐标的当前日期时间的坐标值,整数部分代表这个日期时间与原点相差的天数,分数部分代表小时、分钟和秒转换成天的数值。

因此,用坐标的概念来理解日期时间的表示和计算就好理解了,同样的一个数,既可以理解为时间点(日期)、也可以理解为时间段(时间),但代表的含义是有区别的。

日期时间只有下面三种运算才有意义:

时间段 +或- 时间段=时间段 (时间 +或- 时间=时间)

时间点 +或- 时间段=时间点 (日期 +或- 时间=日期

时间点-时间点=时间段 (日期-日期=时间)

因此,日期时间的计算就是在以1900-1-1 00:00:00为原点,以天数为单位的数值的加减运算,至于含义就有某一时刻或者是多长一段时间两种可能(类似的还有温度的表示)。至于最终如何显示就跟显示格式有关了,可以理解为是一个字符串。

 

标准的日期时间计算,除了直接想加减,主要就是用到 Dateadd( )函数了,至于表示就是主要用到 Format( ) 函数了,对这两个函数的了解,请参看帮助文件和论坛中的一些例子。

 

楼主想要以分钟为单位来显示和记录,可以的标准的日期时间类型天数*24*60就可以转换了。楼主要记录的飞行时间可以只记录一个分钟数,累计和加减直接计算就可以了,先表示成为“小时:分钟”的格式,用 飞行时间\60 & ":" & (飞行时间 mod 60) 这个表达式就可以了,就是整除60得到小时数,对60取模(取余数)得到分钟数。 保存的是分钟数,如何表示那就是计算和转换的方法问题了。

 



总记录:5篇  页次:1/1 9 1 :