RPAD Numeri c значений - PullRequest
       1

RPAD Numeri c значений

0 голосов
/ 13 апреля 2020

Это прекрасно работает в Oracle, но не Postgres. postgres допускает заполнение чисел c нулями?

RPAD(REPLACE(CAST(CEIL(MOD(columntimesec, 60)) / 100 AS VARCHAR(3)) , '.','0:'),4,0)

Это работает, но я бы хотел дополнить значениями чисел c вместо

RPAD(REPLACE(CAST(CEIL(MOD(columntimesec, 60)) / 100 AS VARCHAR(3)) , '.','0:'),4,'0')

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Если вам нужно увидеть время в формате чч: ми: сс, то вы можете использовать

      LPAD(MOD(FLOOR(MOD(columntimesec,86400)/ 3600)::int,3600)::text,2,'0')||
':'|| LPAD(MOD(FLOOR(MOD(columntimesec,86400)/ 60)::int,60)::text,2,'0')||
':'|| LPAD(MOD(MOD(columntimesec,86400), 60)::text,2,'0') AS time

Если вам достаточно части, содержащей mi:ss, то извлеките только эту часть:

      LPAD(MOD(FLOOR(MOD(columntimesec,86400)/ 60)::int,60)::text,2,'0')||
':'|| LPAD(MOD(MOD(columntimesec,86400), 60)::text,2,'0') AS time

Демо

0 голосов
/ 13 апреля 2020

Если columntimesec - «время дня» (то есть между 00:00 и 23:59:59), тогда используйте make_time и отформатируйте вывод:

to_char(make_time(sec => columntimesec), 'hh24:mi')

Если `columntimese c '- это длительность, затем преобразуйте ее в интервал и отформатируйте, используя to_char:

to_char(make_interval(secs => columntimesec), 'hh24:mi')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...