mm-dd hh.mm.ss“中的日期字段转换为配置单元中的时间戳字段(yyy-mm-dd hh:mm:ss)

ngynwnxp  于 2021-06-26  发布在  Hive
关注(0)|答案(2)|浏览(459)

我有一个格式为yyyy-mm-dd-hh.mm.ss的日期字段,来自一个db2源代码。
我如何实现它?

dfuffjeb

dfuffjeb1#

你的源数据库 dot 在几小时,几分钟和几秒钟之间。Hive支架 : 在他们之间,比如: yyyy-MM-dd HH:mm:ss .
参考:配置单元日期函数

select
cast(
  concat(
    substr('2015-07-22-09.00.32',1,10), ' ', 
    substr('2015-07-22-09.00.32',12,2), ':', 
    substr('2015-07-22-09.00.32',15,2), ':', 
    substr('2015-07-22-09.00.32',18,2)
  ) AS TIMESTAMP
)
;
dced5bon

dced5bon2#

你可以使用 unix_timestamp 以及 from_unixtime 而不是 substr 当前正在使用的方法。

select cast( 
           from_unixtime(
                unix_timestamp('2017-08-31-12:24:48' , 'yyyy-MM-dd-HH:mm:ss') 
           )
        as timestamp
);

+------------------------+--+
|          _c0           |
+------------------------+--+
| 2017-08-31 12:24:48.0  |
+------------------------+--+

相关问题