Impala中ORACLE的SYSDATE相当于什么?

时间:2014-07-04 14:07:13

标签: sql oracle impala sysdate

我有一个WHERE子句,我试图从ORACLE SQL转换为Impala SQL。 col2输出看起来像201406.我需要让Impala可读,然后将其格式化然后将其转换为字符串。任何帮助将不胜感激!

WHERE Table1.col2 <= to_char( SYSDATE-7, 'YYYYMM')

2 个答案:

答案 0 :(得分:2)

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 ))

答案 1 :(得分:-1)

使用以下语法:

@page