如何在Hive中从timestamp字段提取日期部分
Hive提取指定格式时间字段的日期部分方案
待处理字段格式示例:
20210817 16:45
根据你的使用场景可以选择以下两种实现方案:
场景1:仅需要获取日期格式的字符串,无需后续日期运算
直接按空格分割字段取第一部分即可,示例代码如下:SELECT split(timestamp_col, ' ')[0] AS date_part FROM your_table;执行后得到的日期格式为
20210817。场景2:需要得到日期类型值,或后续要做日期计算、格式转换
先将自定义格式的时间字符串转为标准时间类型再提取日期,示例代码如下:-- 输出yyyy-MM-dd格式的日期类型值 SELECT to_date(from_unixtime(unix_timestamp(timestamp_col, 'yyyyMMdd HH:mm'))) AS date_part FROM your_table; -- 如果需要保留yyyyMMdd格式的字符串输出 SELECT date_format(from_unixtime(unix_timestamp(timestamp_col, 'yyyyMMdd HH:mm')), 'yyyyMMdd') AS date_part FROM your_table;
如果你的timestamp_col是Hive原生TIMESTAMP类型,直接调用to_date函数即可:
SELECT to_date(timestamp_col) AS date_part FROM your_table;
内容的提问来源于stack exchange,提问作者Nik
相关产品推荐
相关产品推荐

