在impala中,什么是oracle的sysdate的等价物?

mqkwyuun  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(603)

我有一个where子句,我正试图从oraclesql转换成impalasql。col2的输出类似于201406。我需要有这个 Impala 可读,然后格式化它,然后把它变成一个字符串。任何帮助都将不胜感激!

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

t1rydlwq1#

current\u 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\u add()或months\u add(),因为许多人喜欢使用-7而不是days\u sub()和正7。不过,我假设这是可行的(这在mysql中工作,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 ))
fzwojiic

fzwojiic2#

使用以下语法:

select from_unixtime(unix_timestamp(now()), 'yyyy-MM-dd')

相关问题