HIVE 以及地点和日期声明

Posted

技术标签:

【中文标题】HIVE 以及地点和日期声明【英文标题】:HIVE and where and date statements 【发布时间】:2020-07-24 00:53:05 【问题描述】:

如何修复此代码以使其在 HIVE 中工作?我尝试了 () 的多种组合,但没有任何效果……

Where (DOB is not NULL) 
  and (DATE_FORMAT(DOB, 'yyyyMM') BETWEEN 201601 AND 201805) 
  and (color in ('orange', ‘blue', 'pink'))

【问题讨论】:

【参考方案1】:

(DOB is not NULL) 条件是多余的,因为如果DATE_FORMAT(DOB, 'yyyyMM') BETWEEN 201601 AND 201805 那么 DOB 肯定不是 NULL。

所以这应该可以工作(修复blue附近的错误单引号):

Where (DATE_FORMAT(DOB, 'yyyyMM') BETWEEN 201601 AND 201805) 
  and (color in ('orange', 'blue', 'pink'))

date_format 仅在第一个参数是正确的日期或时间戳时才有效:yyyy-MM-dd HH:mm:ss.SSSS,如果不是,请使用其他内容提取 yyyyMM

【讨论】:

以上是关于HIVE 以及地点和日期声明的主要内容,如果未能解决你的问题,请参考以下文章

从 Greenplum Query 迁移 Hive 日期和周函数

日期递增的 Hive UDF

iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法

Hive的数据类型

在PostgreSQL 和 Hive中生成日期序列

hive6:字符串和日期的转换常用函数