You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@drill.apache.org by Bharani Manickam <Bh...@specsavers.com> on 2018/07/03 14:57:47 UTC
How to dynamically add months in Apache drill
Hello,
DATE_ADD function doesn't support a column as the interval argument in drill queries.
We have a requirement to pass a column as Interval Month to derive a forecasted date. Do you have any work around for this please?
The requirement is something like this -
Query that works
select
a,
DATE_ADD(date '2015-05-15', interval '1' month)
from
(
select '1' a, INSERTED_AT from dfs.data.bi_interaction limit 3
);
Query that doesn't work
select
a,
DATE_ADD(date '2015-05-15', interval a month)
from
(
select '1' a, INSERTED_AT from dfs.data.bi_interaction limit 3
);
Thanks
Bharani
Re: How to dynamically add months in Apache drill
Posted by Arjun kr <ar...@outlook.com>.
One way to do this is given below. This requires interval expression to be passed to the DATE_ADD function.
0: jdbc:drill:> select DATE_ADD(date '2015-05-15', interval '1' month) with_literal, DATE_ADD(date '2015-05-15',cast(concat('P',val,'M') as interval month)) with_column_value from (select 1 as val from (values(1))) a;
+------------------------+------------------------+
| with_literal | with_column_value |
+------------------------+------------------------+
| 2015-06-15 00:00:00.0 | 2015-06-15 00:00:00.0 |
+------------------------+------------------------+
1 row selected (0.21 seconds)
0: jdbc:drill:>
https://drill.apache.org/docs/data-type-conversion/#casting-intervals
https://drill.apache.org/docs/date-time-and-timestamp/#intervalyear-and-intervalday
https://drill.apache.org/docs/date-time-functions-and-arithmetic/#date_add
Thanks,
Arjun
________________________________
From: Bharani Manickam <Bh...@specsavers.com>
Sent: Tuesday, July 3, 2018 8:27 PM
To: user@drill.apache.org
Subject: How to dynamically add months in Apache drill
Hello,
DATE_ADD function doesn't support a column as the interval argument in drill queries.
We have a requirement to pass a column as Interval Month to derive a forecasted date. Do you have any work around for this please?
The requirement is something like this -
Query that works
select
a,
DATE_ADD(date '2015-05-15', interval '1' month)
from
(
select '1' a, INSERTED_AT from dfs.data.bi_interaction limit 3
);
Query that doesn't work
select
a,
DATE_ADD(date '2015-05-15', interval a month)
from
(
select '1' a, INSERTED_AT from dfs.data.bi_interaction limit 3
);
Thanks
Bharani