【问题标题】:Netezza time formattingNetezza 时间格式
【发布时间】:2017-03-16 12:12:02
【问题描述】:

需要将 1/1000 秒分辨率的时间戳转换为 1/100 分辨率。我可以为此目的使用to_char(timestamp, text) 格式化函数,但是需要text 的帮助才能使用。 Postgres 的做法是here

输入表(注意——这里的时间戳存储为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 |
+------------------------+

【问题讨论】:

    标签: sql netezza


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多