Postgresql具有很好的函数date_trunc()
,可以很容易地计算一周开始的日期。这对于一周级别的聚合非常有用。例如
SELECT
date_trunc('week', create_date),
count(*)
FROM ...
GROUP BY 1;
HiveQL具有为您提供周数的函数WEEKOFYEAR()
。如果将其与YEAR()
结合使用,则可以制作与postgres中相同类型的聚合。
SELECT
YEAR(create_date),
WEEKOFYEAR(create_date),
count(*)
FROM ...
GROUP BY YEAR(create_date), WEEKOFYEAR(create_date);
这很棒。但是,如果我想要一周的实际日期呢?
如何计算HiveQL中的周日期,从年份和周数或直接从时间戳计算?