Нам все еще нужно использовать функции two regexp_replace
, потому что мы не заменяем все алфавиты некоторым значением замены .
(или)
Используя функции from_unixtime
и unix_timestamp
, мы можем удалить T, Z из строкового значения.
Ex:
hive> with cte as(select string("2018-10-27T19:57:33Z")ts)
select ts,
regexp_replace(regexp_replace(ts,'T',' '),'Z','') regex_func,
from_unixtime(unix_timestamp(ts,"yyyy-MM-dd'T'HH:mm:ss'Z'"),"yyyy-MM-dd HH:mm:ss") unix_time_func
from cte;
+-----------------------+----------------------+----------------------+--+
| ts | regex_func | unix_time_func |
+-----------------------+----------------------+----------------------+--+
| 2018-10-27T19:57:33Z | 2018-10-27 19:57:33 | 2018-10-27 19:57:33 |
+-----------------------+----------------------+----------------------+--+
Существуют и другие способы использования replace, подстрока , которые позволяют достичь того же результата.