On Sat, Aug 31, 2019 at 10:05:10AM -0400, stan wrote:
> I have been chasing a bug for a bit now. I even wound up completely rewriting 
> the
> function, which in the end turns out to be a good thing, as it is much 
> cleaner and
> easy to read. 
> 
> I now believe that the bug is in how I am using an input parameter to the
> function. Here is the function deceleration:
> 
> CREATE FUNCTION
> return_previous_month_start_and_end(
> integer)
> RETURNS interval_dates AS $$
> 
> Here is one of the places I am using it:
> 
> 
> my_year :=      ( select
>                  cast(extract(year from
>                                                       cast(date_trunc('month',
>                                                               CURRENT_DATE) - 
> interval '  $1
>                                                               month - 1 ' day 
> as date)
>                                                               ) as integer)
>                                               ) ;
> This prints the correct value BTW:
> 
>  RAISE notice 'Called with %', $1 ;
> 
>  Nay thoughts as to what I am doing wrong?
> 
BTW, this article
https://dba.stackexchange.com/questions/159424/how-to-use-function-parameters-in-dynamic-sql-with-execute
seems to imply that I can use the $1 syntax in a string, but others refer to 
using
the COALESCE functionality, but I am uncertain exactly how to use this here.


-- 
"They that would give up essential liberty for temporary safety deserve
neither liberty nor safety."
                                                -- Benjamin Franklin


Reply via email to