powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразование года в интервал
4 сообщений из 4, страница 1 из 1
Преобразование года в интервал
    #33417880
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть задача (PG 8.0) преобразовать год в тип interval. Изначально есть условие, что пользователь вводит время жизни лога в годах, и соответственно нужно удалять то, что выходит за время жизни.
Сейчас сделал ХП :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE OR REPLACE FUNCTION "public"."pg_year_int_tointerval" (year_int integer) RETURNS interval AS
$body$
/* New function body */
declare
 res interval;
 curs1 refcursor;
begin

 OPEN curs1 FOR EXECUTE 'SELECT '''|| year_int || ' year''';

 FETCH curs1 INTO res;
 CLOSE curs1;
 RETURN res;
end;
$body$
LANGUAGE 'plpgsql' IMMUTABLE CALLED ON NULL INPUT SECURITY INVOKER;
Но чего-то как-то она мне не очень. Может есть более другие варианты?
...
Рейтинг: 0 / 0
Преобразование года в интервал
    #33417900
Фотография XM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Daeron wrote:
> Есть задача (PG 8.0) преобразовать год в тип interval. Изначально есть
> условие, что пользователь вводит время жизни лога в годах, и
> соответственно нужно удалять то, что выходит за время жизни.
> Сейчас сделал ХП :
> ...
> Но чего-то как-то она мне не очень. Может есть более другие варианты?

Код: plaintext
1.
2.
create function year_int_to_interval( int ) returns interval as $$
select (text( $ 1  *  365 . 25  ) || ' days')::interval $$ language 'sql';

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Преобразование года в интервал
    #33422695
Фотография Кувалдин Роман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция EXTRACT. Она должна тебе помочь.
...
Рейтинг: 0 / 0
Преобразование года в интервал
    #33428945
ZemA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XM пишет:
>
> Andrey Daeron wrote:
> > Есть задача (PG 8.0) преобразовать год в тип interval. Изначально есть
> > условие, что пользователь вводит время жизни лога в годах, и
> > соответственно нужно удалять то, что выходит за время жизни.
> > Сейчас сделал ХП :
> > ...
> > Но чего-то как-то она мне не очень. Может есть более другие варианты?
>
> create function year_int_to_interval( int ) returns interval as $$
> select (text( $1 * 365.25 ) || ' days')::interval $$ language 'sql';
>
>
а почему не так?
<src>
create function year_int_to_interval( int ) returns interval as '
select ($1::text || \' years\')::interval;
' language sql;
</src>
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Преобразование года в интервал
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]