Query Casting Help
I am trying to execute this little bit:
(extract(month from current_date) + interval '1 month')
The system says I need to cast because it can't figure out how to add
these... I read through the manual and I am still a little confused.
Which side should I be casting? To what datatype?
TIA,
Hunter
On Tuesday 09 Jul 2002 12:21 am, Hunter Hillegas wrote:
I am trying to execute this little bit:
(extract(month from current_date) + interval '1 month')
The system says I need to cast because it can't figure out how to add
these... I read through the manual and I am still a little confused.
Try:
select extract(month from (current_date + interval '1 month'));
date_part
-----------
8
You want to add an interval to a date. It probably doesn't make sense to add
an interval to a month.
Alternatively:
select extract(month from (current_date)) + 1;
But that wouldn't deal with wrap-around in December.
- Richard Huxton
(extract(month from current_date) + interval '1 month')
The system says I need to cast because it can't figure out how to add
these... I read through the manual and I am still a little confused.
Which side should I be casting? To what datatype?
What are you hoping to get as a result? A date, or an interval? The
extract() function returns a double-precision value for the field (the
month in this case) so doesn't give anything for the interval to work
with.
If you want a date, then you might want something like
(date_trunc('month', current_date) + interval '1 month')
hth
- Thomas
At 7/8/02 11:51 PM, Hunter Hillegas wrote:
I am trying to execute this little bit:
(extract(month from current_date) + interval '1 month')
The system says I need to cast because it can't figure out how to add
these... I read through the manual and I am still a little confused.
The parentheses aren't in quite the right place. Try:
extract(month from (current_date + interval '1 month'))
That is, you want to add 1 month to the current date first (adding a date
and an interval), then extract the month number from the result of that.
Your version extracted the month integer first -- "8" -- then tried
adding an interval to it, but it doesn't make sense to add integers and
intervals together.
------------------------------------
Robert L Mathews, Tiger Technologies
Import Notes
Resolved by subject fallback