配置单元:to_date(date_column)相对于year(date_column),month(date_column),day(date_date)

时间:2019-04-29 22:19:21

标签: hive

这在这里可能不是一个讨人喜欢的问题,但是我需要了解是否有人对如果在蜂巢中使用to_date函数而不是分别计算年,月,日,会产生什么区别。我得到了不同的结果。

select col1, col2, col3, count(*) 
from tableName
where to_date(date_col) = '2019-01-01'
group by col1, col2, col3
having count(*) > 1
order by col1

上面的sql给了我重复项。

但是,当我使用具有以下修改的相同查询时,却没有任何帮助。

select col1, col2, col3, count(*) 
from tableName
where year(date_col) = '2019' and month(date_col) = '01' 
and day(date_col) = '01'
group by col1, col2, col3
having count(*) > 1
order by col1

我想到to_date函数期望列中的值的格式为“ yyyy-mm-dd hh:mm:ss”,因此理想情况下,我们应该将to_date函数与FROM_UNIXTIMESTAMP(UNIX_TIMESTAMP(col,'format'))一起使用 但是我不明白为什么会这样。

知道为什么吗?以及to_date是否给我错误的结果?

0 个答案:

没有答案