В базе данных мы храним время в десятичном виде. В некоторых местах он хранится как три цифры, а в других - как четыре цифры.
например
0415
415
Время должно быть 04:15
, и я использую 24-часовые часы.
Я пытался использовать оператор cast
из следующая ссылка , и она отлично работает, когда время представлено в виде десятичной дроби git. Однако я получаю нулевое значение, когда время представляется в виде 3 цифр.
Может кто-нибудь предложить утверждение, которое будет работать как с тремя цифрами, так и с четырьмя десятичными числами git и преобразовать его во время.
Благодаря GMB
Следующее работает, но не для таких значений, как 400, 500, 600 и т. Д. c. Небольшой прогресс, но я бы не попал сюда без помощи GMB
Это работает:
SELECT cast( cast(floor(0415/100) as varchar(2)) || ':' || cast(MOD(415,100) as varchar(2)) as time ) FROM "SYSIBM".SYSDUMMY1
Это не работает:
SELECT cast( cast(floor(0400/100) as varchar(2)) || ':' || cast(MOD(400,100) as varchar(2)) as time ) FROM "SYSIBM".SYSDUMMY1
Обратите внимание, код для Версия DB2 iSeries, если вы используете LUW DB2, используйте ответ от GMB.
Любая помощь о том, почему он не работает для значений, таких как 400, 500 и т. Д. c?