我有一个类似的查询
select
sources,
table_name,
position
from prd_sri_datalake.sri_300_300_monitoring_daily_new
where cast(date_process as DATE FORMAT 'YYYY-MM-DD')
= cast(now() as DATE FORMAT 'YYYY-MM-DD')
ORDER BY TABLE_NAME ASC
对于date_process,其格式为YYYYMMDD,我想将其显示为YYYY-MM-DD。我想在dateprocess等于当前时间的地方显示数据,但我试着投进impala,它不能。有人能帮我吗?
谢谢
如果我理解正确,你想检查date_process=current_date吗?
您可以将date_process转换为时间戳,而不需要像这样的时间CCD_ 1,然后像这个CCD_ 2一样等于没有时间的当前日期。Where子句看起来像这个
where to_timestamp(date_process,'yyyyMMdd')= trunc(now(),'DD') --date to date match
您也可以像以前一样将所有内容转换为yyyyMMdd并进行相等处理。
where date_process= from_timestamp(now(),'yyyyMMdd') --string to string match
EDIT:将date_process从"YYYYMMDD"转换为"YYYY-MM-DD"可以这样完成-首先使用to_timestamp将其转换为时间戳,然后使用from_timestamp将它转换为字符串。
from_timestamp(to_timestamp(date_process,'yyyyMMdd'),'yyyy-MM-dd') as date_process_str_yyyy_MM_dd