2017-03-16 8 views
1

1/1000秒のタイムスタンプを1/100の解像度に変換する必要があります。私はおそらくこの目的のためにto_char(timestamp, text)フォーマット機能を使うことができましたが、textの助けが必要です。これを行うPostgresの方法はhereです。Netezzaの時刻書式

入力テーブル(注 - ここでタイムスタンプは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 | 
+------------------------+ 

答えて

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 
を試します