将十进制字符串更改为 Impala 中的时间戳

Change a decimal string into a timestamp in Impala

如何将字符串类型转换为 t1.updte_timestamp

2018-06-02-08.18.45.562742 
2018-05-26-09.18.16.594824

转换成时间戳?应该导致:

2018-06-02-08.18.45
2018-05-26-09.18.16

这些值是从 excel 导入的并且是 STRING-TYPE

我试过了:

SELECT
 to_timestamp(cast (t1.updte_timestamp as string), 'yyyy-mm-dd hh:mm:ss') as updted_timestamp FROM OLD;

但所有值都为 NULL

谢谢

您可以substr您的字符串并应用to_timestamp如下

select to_timestamp(substr('2018-06-02-08.18.45.562742', 1, 19) , 'yyyy-MM-dd-HH.mm.ss');

确保使用大写的 MM 表示月份,HH 表示小时