Search Postgresql Archives

PL/pgSQL & OVERLAPS operator

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello!

I am teaching myself PL/pgSQL. I am trying to write a function that tests whether two time periods overlap. I want to test the function parameters against these two values in "overlaptest" table:

select * from overlaptest;
 id |        alku         |        loppu
----+---------------------+---------------------
  1 | 2010-03-23 10:00:00 | 2010-03-23 12:00:00
(1 row)

I have written this function,

CREATE OR REPLACE FUNCTION TryOverlap(text, text) RETURNS boolean AS $$
DECLARE
    ts_start timestamp with time zone := CAST ($1 AS TIMESTAMP WITH TIME ZONE);
    ts_end timestamp with time zone := CAST ($2 AS TIMESTAMP WITH TIME ZONE);
    alku timestamp with time zone;
    loppu timestamp with time zone;
BEGIN
    SELECT alku,loppu FROM overlaptest WHERE id = 1 INTO alku,loppu;
    IF ((alku,loppu) OVERLAPS (ts_start,ts_end)) THEN
        RETURN true;
    END IF;
    RETURN false;
END;
$$ LANGUAGE plpgsql;

However, it always seems to return the value false. What's the problem here? 

I appreciate any help.

Tuo


      

-- 
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux