Impala 日期到字符串转换

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

如何检查 Impala 中列的类型?查询是

select TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd'))

我还想将查询结果格式化为字符串 yyyyMMdd . CAST 退货 null . 有什么建议吗?

k0pti3hp

k0pti3hp1#

你可以试试下面的 Impala 查询。

Case1:-
    select cast(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd')) as string);
    Result
    2018-03-16

Case2:-
    select cast((FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyyMMdd')) as string);
    Result
    20180316

Case3:-
    select cast(regexp_replace(TO_DATE(FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd HH:mm:ss')),'-','')as string);
    Result
    20180316

您可以使用regexp\u replace将所有-替换为空字符串,这样就可以使用yyyymmdd格式。

8tntrjer

8tntrjer2#

我不太明白你关于“检查列的类型”的问题。tou date函数正在以字符串形式返回结果。
对于第二个问题,可以使用current\ u date获取服务器日期,然后使用名为“date\ u format”的函数。顺便说一句,unix时间戳是有用的,如果你想达到小时,分钟,秒和微秒和当前的日期函数是足够的,如果没有时间要求。

SELECT DATE_FORMAT(CURRENT_DATE, 'yyyyMMdd');
Result: 20180316

相关问题