Re: INTERVAL in a function

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re: INTERVAL in a function
Дата
Msg-id 20041109010032.GA71358@winnie.fuhr.org
обсуждение исходный текст
Ответ на INTERVAL in a function  (Ron St-Pierre <rstpierre@syscor.com>)
Ответы Re: INTERVAL in a function  (Ron St-Pierre <rstpierre@syscor.com>)
Список pgsql-general
On Mon, Nov 08, 2004 at 04:15:34PM -0800, Ron St-Pierre wrote:

> SELECT INTO exptime current_timestamp + INTERVAL ''intval'';

You're using the literal value 'intval' instead of its value, thus
the syntax error.  You can simplify the statement to this:

exptime := current_timestamp + intval;

But I think the entire function can be shortened to:

CREATE OR REPLACE FUNCTION getUnitTimeLength(int) RETURNS TIMESTAMP AS '
SELECT CURRENT_TIMESTAMP::timestamp + unitTimeLength
FROM customer.groups
WHERE groupsID = $1
' LANGUAGE sql;

You don't need to check for NULL because the result of the addition
will already be NULL if either operand is NULL.  Casting CURRENT_TIMESTAMP
is necessary to avoid a "return type mismatch" error.

--
Michael Fuhr
http://www.fuhr.org/~mfuhr/

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Backend disconnect problems
Следующее
От: Kenji Morishige
Дата:
Сообщение: Newbie Question, how to grant permissions on all tables in schema/db