简体   繁体   中英

Filter on date relative to today but the dates are in separate fields

I have a table where the date parts are in separate fields and I am struggling to put a filter on it (pulling all the data is so much that it basically times out).

How can I write a sql query to pull the data for only the past 7 days?

| eventinfo  | entity                  | year | month | day |
|------------|-------------------------|------|-------|-----|
| source=abc | abc=030,abd=203219,.... | 2022 | 08    | 07  |
| source=abc | abc=030,abd=203219,.... | 2022 | 08    | 05  |
| source=abc | abc=030,abd=203219,.... | 2022 | 07    | 33  |

Many thanks in advance.

You can use concatenation on your columns, convert them to date and then apply the filter.

-- Oracle database
select *
from event
where to_date( year||'-'||month||'-'||day,'YYYY-MM-DD') >= trunc(sysdate) - 7;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM