我正在读取一天中几秒钟的整数字段(存储开放时间),并将其转换为某人实际上能够读取的内容。
实施例: 32400秒= 9 AM(32400/3600 = 9)
如果每个商店都按小时开门,这很好,但现在有些商店在半小时开门和关门。
实施例 9:30回归9(34200/3600 = 9),这不好。我也不希望34200回到9.5。
理想情况下,我希望32400以900和34200的形式返回到930,而46800则以1300的形式返回。输入和输出参数都需要是整数(我不能更改列类型)。
在DB2中执行此操作的任何简单方法?感谢
答案 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
在此之后,可以在显示代码中轻松处理转换为更易读的格式。