在impala或hive中有没有一种简单的方法将int转换为timestamp数据类型。
我使用下面的代码将int转换为timestamp,但我认为这不是一种有效的方法。
20180520
CAST(concat(substring(CAST(datalake_date as string),1,4),'-',substring(CAST(datalake_date as string),5,2),'-',substring(CAST(datalake_date as string),7,2))
AS TIMESTAMP)
---提取年份---
,date_part('Year',
CAST(concat(substring(CAST(datalake_date as string),1,4),'-',substring(CAST(datalake_date as string),5,2),'-',substring(CAST(datalake_date as string),7,2))
AS TIMESTAMP)
) datalake_date
2018
2条答案
按热度按时间sg24os4d1#
使用
unix_timestamp(string date, string pattern)
将给定的日期格式转换为从1970-01-01经过的秒数。然后使用from\u unixtime()转换为所需格式:退货:
提取年份的简单方法是使用substr:
或者在以上(请参阅第一个查询)转换为您可以使用的标准配置单元格式“yyyy-mm-dd”之后
year()
,date_format
功能643ylb082#
您可以像这样直接解析到unix时间戳
之后,您有几个自定义项来操作日期、提取年份、日期等