DB2一天中的可读时间

时间:2011-09-08 19:59:41

标签: time db2

我正在读取一天中几秒钟的整数字段(存储开放时间),并将其转换为某人实际上能够读取的内容。

实施例: 32400秒= 9 AM(32400/3600 = 9)

如果每个商店都按小时开门,这很好,但现在有些商店在半小时开门和关门。

实施例 9:30回归9(34200/3600 = 9),这不好。我也不希望34200回到9.5。

理想情况下,我希望32400以900和34200的形式返回到930,而46800则以1300的形式返回。输入和输出参数都需要是整数(我不能更改列类型)。

在DB2中执行此操作的任何简单方法?感谢

2 个答案:

答案 0 :(得分:4)

这非常简单(只要您在Linux,UNIX或Windows上使用DB2):

VALUES INT(TIME('00:00:00') + 34200 seconds)/100

这将为输入34200返回所需的整数930,并为输入46800返回1300

答案 1 :(得分:1)

我假设您当前的数据显示,而不是最初声明的毫秒 ......

以下内容将为您提供DB2中的有效time数据类型:

SELECT CAST('00:00:00' as TIME) + (34200/3600) HOURS + MOD(34200/60, 60) MINUTES
FROM sysibm/sysdummy1  

在此之后,可以在显示代码中轻松处理转换为更易读的格式。