Поскольку ваше приложение ожидает лидирующие нули при значениях менее часа, вам придется его дополнить. Однако, поскольку значения могут превышать 10 часов, нам нужно обрабатывать их немного по-другому, чтобы учесть дополнительные символы в конечном результате.
Это, кажется, дает значения, которые вы ищете.
Настройка:
create table t
(tm decimal(18,5));
insert t values (8.05999),(11.00000),(0.34111);
Запрос:
select
case
when t.tm > 10
then cast(cast(t.tm*100 as integer) as varchar(5)) --<-Handles longer shifts
else right(concat('000',cast(t.tm*100 as integer)),3) --<-Handles shorter shifts
end as appVal
from t;
Результаты:
+--------+
| appVal |
+--------+
| 805 |
| 1100 |
| 034 |
+--------+