我可以在postrgres有超过24小时的时间

时间:2015-11-20 17:31:37

标签: postgresql

我正在做时间表。在铁路时刻表中,如果服务从一天开始并在下一天结束,则惯例是使用+24小时时钟。因此,如果它在早上6点进入,则从上一个开始日期开始计算时间为三十分钟。这个日期可以是,在这种情况下,是在一个单独的表中,因此无法合并。

我是否必须在几秒钟内将其存储并在输出时将其转换回本机导出格式,该格式需要+24小时时钟格式,并且还要在UI上。如果它意味着从星期四1月1日起将时间存储为TimeDate,那么我只需使用整数并在我的应用程序中创建虚拟类型。

或者有一种简单的方法可以在时间场上放松24:00。

3 个答案:

答案 0 :(得分:4)

听起来你想要interval类型。

谈到时间时,有三种类型的时间(所有这些都具有惊人的复杂性):

  • 特定时间。时间戳。
  • 持续时间
  • 时间间隔(两个特定时间之间的时间......类似于上述但不同)。

本案例中的Postgres使用interval来表示持续时间(但是在许多时间库中存在差异,例如Joda ......即一年并不总是一年)。

答案 1 :(得分:2)

您最好的选择是存储interval等信息。如果您要按分钟记录到达时间,也可以使用interval minute。间隔可以采用任何(合理的)值,因此30:00完全有效,表示到达时间是某个起点后30小时(出发日期或出发日期的午夜,具体取决于您的逻辑)。由于interval是内置数据类型,因此您只需将其添加到其他datetimestamp,即可在数据库和UI级别获得合理的结果。

答案 2 :(得分:-1)

马克 -

这听起来像是一个习惯的挑战 - 我从来没有听说过那种时间保持!话虽如此,我不会尝试在数据库字段的圆孔中强制使用方形钉。相反,我会使用您的应用程序来跟踪您希望如何显示时间并允许数据库执行最适合时间戳的操作。时间戳通常以纪元形式(秒数)存储,因此正常存储您的时间并创建包装器/帮助器功能以向您的用户显示+24小时时钟格式。