powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите побороть interval !!!
6 сообщений из 6, страница 1 из 1
Помогите побороть interval !!!
    #32931737
greeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доьрого времени суток!

Есть такая функция:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
CREATE OR REPLACE FUNCTION "public"."update_new" () RETURNS boolean AS'
declare
   merchant_id record;
   period_value varchar;
   rate_value varchar;
   value_ char(10);
   ttt timestamp;
begin

SELECT value
INTO period_value
FROM configconst
WHERE name=''TRANSACTION_SEARCH_NUM_PERIOD'';

SELECT value
INTO rate_value
FROM configconst
WHERE name=''TRANSACTION_SEARCH_NUM_RATE'';

UPDATE merchantstat SET transaction = 0;
FOR merchant_id IN SELECT merchant_ FROM transactionext WHERE isactive AND show AND not notadultcontent AND is_makemytransactionspublic(member_) AND activationtime > current_timestamp - interval ''10 day'' LOOP
    UPDATE merchantstat SET transaction = transaction + 1 WHERE merchant_=merchant_id.merchant_::bigint;
END LOOP;

RETURN true;
end;
'LANGUAGE 'plpgsql' IMMUTABLE RETURNS NULL ON NULL INPUT SECURITY INVOKER;

и тут есть:
Код: plaintext
interval ''10 day''
Подскажите плиз, кто знает, как мне в качетсве параметра передавать в interval другое значение?
В качестве значений нужно подставлять данные из period_value и rate_value соответственно.
...
Рейтинг: 0 / 0
Помогите побороть interval !!!
    #32932096
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пробовал
select ( period_value || ' month')::interval;
???
...
Рейтинг: 0 / 0
Помогите побороть interval !!!
    #32932209
greeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wbearпробовал
select ( period_value || ' month')::interval;
???

Ну и что? Он выдает (к примеру) '10 month', а мне нужно получить значение а не строки сложить. Это раз, а во вторых ... current_timestamp - interval select(rate_value || 'month')::interval ... ошибка!
Или я может что-то напутал?
...
Рейтинг: 0 / 0
Помогите побороть interval !!!
    #32932703
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Q. Подскажите плиз, кто знает, как мне в качетсве параметра передавать в interval другое значение?
A. .... current_timestamp-(other_value || ' month')::interval ....
при этом other_value int либо varchar с содержимым типа число..

Q.Ну и что? Он выдает (к примеру) '10 month', а мне нужно получить значение а не строки сложить.
A. пригледись тип у этого самого '10 month' это интервал, а не строка. это и есть значение типа интервал

или какое ты хочешь значение получить?

Q.
select(rate_value || 'month')::interval... ошибка!
A.видимо пробел перед month забыл
select (rate_value || ' month')::interval from my_table



P.s. PG умеет строки превращать в тип Interval простым преоброзованием ::interval
, но строка при этом должна быть соответственно отформатированна
_ЧИСЛО_ПРОБЕЛ_ОПРЕДЕЛИТЕЬ
где _ОПРЕДЕЛИТЕЬ in (year,month,day,sec ..etc) подребности в доках
...
Рейтинг: 0 / 0
Помогите побороть interval !!!
    #32940534
Гыук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На 7.4 оба запроса работают

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SELECT CURRENT_DATE - ( '10' || ' month')::interval


SELECT
	CURRENT_DATE - ( Field || ' month')::interval
FROM 
	tbTable 
...
Рейтинг: 0 / 0
Помогите побороть interval !!!
    #32965645
greeka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, разобрался.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Помогите побороть interval !!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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