场景介绍:
数据库里存的时间格式为string格式,比如:20200905174444,想要转换为2020-09-05 17:44:44这样的timestamp格式。
解决方法:
先把该字段改成timestamp格式,然后再用DATE_FORMAT改成想要的格式,具体如下:
DATE_FORMAT(CAST(UNIX_TIMESTAMP([日期], 'yyyyMMddHHmmss') AS TIMESTAMP), 'yyyy-MM-dd HH:mm:ss')
结果如下:
说明:
以上函数为spark语法,适用于非直连数据集,直连数据集需使用对应数据库的语法,比如oracle的语法为:to_date([日期],'yyyyMMddhh24:mi:ss');
格式选择“日期和时间”,选择“日期”的话,时分秒是不显示的;
如果格式为数值型,需先将字段转化为string格式。