如何存储要以十进制读取的持续时间值,hh:mm等

时间:2012-03-15 14:44:27

标签: database performance math time

我创建了一个试点日志软件应用程序和飞行员以各种格式记录飞行时间。在美国飞行员的日志飞行时间通常为十分之一,即飞行的90分钟将被记录为1.5。国际/欧洲飞行员通常以HH:MM记录时间,因此90分钟将记录为1:30。有些人可能还想要其他格式,例如1 + 30。

我需要一种在SQL Server中存储此值的通用方法,以便可以将其转换为如上所示的显示格式。我不想每个字段都有两列,一个是十进制时间,另一个是总分钟。或者我可以将十进制时间以某种方式转换为总分钟表示并将其存储为INT。

我们还讨论过存储TICKS。问题在于稍后在报表,数据透视表系统(如DevExpress的XtraPivotGrid等)中聚合值。更令人关注的是如何在移动设备上处理这些数据,例如iPhone,Android等上的日志应用程序SQLite的。在过去,我们遇到了Palm OS的问题以及数字(整数)和溢出问题的大小。当你从30年的飞行员中加起来TICKS时,你可能会得到一个巨大的数字。做平均等等......

对于跟踪十进制飞行时间的飞行员,我们使用时间刻度,例如27-33分钟是.5所以如果你飞行32分钟,你记录0.5或1小时33分钟你会记录为1.5 ,因此我们需要在将存储的值转换为显示值时应用时间刻度。对于欧洲人来说,最后一例在美国被记录为1.5的情况将是1:33。

您如何建议我们将飞行员的飞行时间存储在数据库中,以便将其转换为十分之一,百分之一或HH:MM演示?还要考虑聚合,移动应用程序等。

谢谢。

1 个答案:

答案 0 :(得分:0)

使用数据库SQL变体本地的TIME(或DATETIME的定义)。根据输出/输入的要求,转换为外部表示或从外部表示转换。