Форматирование времени Netezza

Необходимо преобразовать метки времени с разрешением 1/1000 секунды в разрешение 1/100. Я мог бы использовать функцию форматирования to_char(timestamp, text) для этой цели, однако мне нужна помощь с использованием text. Способ Postgres сделать это здесь.

входная таблица (примечание: временная метка здесь хранится как varchar)

+-------------------------+
|       ms1000_val        |
+-------------------------+
| 2017/02/20 08:27:17.899 |
| 2017/02/20 08:23:43.894 |
| 2017/02/20 08:24:41.894 |
| 2017/02/20 08:28:09.899 |
+-------------------------+

выходная таблица

+------------------------+
|       ms100_val        |
+------------------------+
| 2017/02/20 08:27:17.89 |
| 2017/02/20 08:23:43.89 |
| 2017/02/20 08:24:41.89 |
| 2017/02/20 08:28:09.89 |
+------------------------+

person user3206440    schedule 16.03.2017    source источник


Ответы (1)


Попробуй это

select cast(to_char(sub.field,'YYYY-MM-DD HH24:MI:SS') as timestamp) 
+ interval '10 millisecond' * (cast(to_char(sub.field,'MS') as integer)/10) as converted_value

from (
    select to_timestamp('2017/02/20 08:27:17.899','YYYY/MM/DD HH24:MI:SS.MS') as field
    union 
    select to_timestamp('2017/02/20 08:23:43.894','YYYY/MM/DD HH24:MI:SS.MS')
    union 
    select to_timestamp('2017/02/20 08:24:41.894','YYYY/MM/DD HH24:MI:SS.MS')
    union 
    select to_timestamp('2017/02/20 08:28:09.899','YYYY/MM/DD HH24:MI:SS.MS')
    ) sub
person Niederee    schedule 22.03.2017