我有一个WHERE子句,我正尝试将其从ORACLE SQL转换为Impala SQL。col2的输出类似于201406。我需要让它对Impala可读,然后格式化它,然后将它转换为字符串。任何帮助都将不胜感激!
WHERE Table1.col2 <= to_char( SYSDATE-7, 'YYYYMM')发布于 2014-07-07 15:29:07
current_timestamp()是now()的别名,因此可以使用这两个别名中的任何一个来代替sysdate
SYSDATE-7是sysdate减去7天,因此WHERE Table1.col2 <= to_char( SYSDATE-7, 'YYYYMM')的等价物是
WHERE Table1.col2 <= concat( cast(year(to_date( days_add(current_timestamp(),-7 ))) as string), cast(month(to_date( days_add(current_timestamp(),-7 ) )) )或者如果扣除额是7个月,那么:
concat( cast(year(to_date( months_add(current_timestamp(),-7 ))) as string), cast(month(to_date( months_add(current_timestamp(),-7 ) )) )注意,这一切都是未经测试的,我使用了days_add()或months_add(),因为很多人喜欢使用负7而不是带正7的days_sub()。然而,我假设这是可行的(这适用于具有类似日期算术函数的MySQL )。
还要注意,这意味着你的字段Table1.col2是一个字符串类型,如果它是一个整数,那么需要一个稍微不同的解决方案。
year( months_add(current_timestamp(),-7 ) ) * 100 + month(days_add(current_timestamp(),-7 ))
year( months_add(current_timestamp(),-7 ) ) * 100 + month(months_add(current_timestamp(),-7 ))发布于 2018-01-22 23:09:17
使用以下语法:
select from_unixtime(unix_timestamp(now()), 'yyyy-MM-dd')https://stackoverflow.com/questions/24576120
复制相似问题