date列的表格式是“yyyymmdd”,我使用以下函数将其转换为标准格式,以便可以执行配置单元day、months和year来获取相应的值。
(from_unixtime(unix_timestamp(cast(created_day as STRING) ,'yyyyMMdd'), 'yyyy-MM-dd'))
为了得到当前年份的数据,我会用当前日期返回的年份减去所有记录中获得的年份,如果它返回零,那么它就属于今年。
(year(current_date()) - year(from_unixtime(unix_timestamp(cast(created_day as STRING) ,'yyyyMMdd'), 'yyyy-MM-dd'))) = 0
问题:如果当前日期在1月,我将只获取1月数据,但我需要获取2月(去年)到1月(今年)的数据?
此外,我需要扩大这一点,以获得过去24个月。
1条答案
按热度按时间pcww981p1#
我总是在配置单元之外设置我的日期范围参数,并将它们作为参数传递,因为这有助于实现可复制性和可测试性。