powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / функция перевода в секунды
13 сообщений из 13, страница 1 из 1
функция перевода в секунды
    #33666831
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,
вопрос такой
написал функцию
CREATE FUNCTION test_101() RETURNS int4 AS '
DECLARE
time_now timestamp;
time_now_mod integer;
BEGIN
SELECT INTO time_now now();
SELECT INTO time_now_mod EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE ''time_now'');
return time_now_ep;
END;' language 'plpgsql';
при
SELECT test_101() AS grey;
выдаётся ошибка
ERROR: invalid input syntax for type timestamp with time zone: "time_now"
CONTEXT: SQL statement "SELECT EXTRACT(EPOCH FROM TIMESTAMP WITH TIME ZONE 'time_now')"
что бы это могло значить ? помогите plz...
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33666902
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сдаётся мне что-то не правильно с типом данных =), но что ?
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33666970
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сдаётся мне что-то не правильно с типом данных =), но что ?
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33667201
Andrey Daeron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А шо такое
time_now ?
если текущее время то лучше посмотерть

http://www.postgresql.org/docs/8.1/interactive/functions-datetime.html
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33667313
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
действительно... =) спасиб
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33667682
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя проблема осталась... не в этом дело..
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33667732
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя проблема осталась... не в этом дело..
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33668045
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нам по 2 раза повторять ненадо.. мы понимаем с первого :)
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33668185
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sorry , случайно
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33668222
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а всё -таки почему не обрабатывается time_now правильно никто не подскажет
?
полностью функция сейчас выглядит так:
CREATE FUNCTION test_64(int4,date,date,date) RETURNS int4 AS '
DECLARE
cost1 integer;
clicks1 integer;
time_now_mod date;
fr_dat_mod date;
to_dat_mod date;
BEGIN
SELECT INTO clicks1 clicks FROM ad_stat WHERE id = $1 AND otype=2;
SELECT INTO cost1 cost FROM ad_banner_set WHERE id = $1;
SELECT INTO time_now_mod EXTRACT(EPOCH FROM DATE '$2');
SELECT INTO fr_dat_mod EXTRACT(EPOCH FROM DATE '$3');
SELECT INTO to_dat_mod EXTRACT(EPOCH FROM DATE '$4');

IF clicks1 > 0
THEN
return cost1::float8*(time_now_mod-fr_dat_mod)/(to_dat_mod-fr_dat_mod)*clicks1::float8;
ELSE
return 0;
END IF;

END;

___________________________________
на запрос
SELECT test_64('454','2006-04-14','2006-03-27','2006-04-16') AS grey;

всё равно ругается
ERROR: invalid input syntax for type date: "$2"
CONTEXT: SQL statement "SELECT EXTRACT(EPOCH FROM DATE '$2')"
почему ?
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33668268
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мож стоит попробовать убрать в ковычки для $1 $2 ?
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33670356
grey_hu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, не стоит =( ...
это тоже неправильно..
...
Рейтинг: 0 / 0
функция перевода в секунды
    #33670406
wbear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и где неправильно?

Код: 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.
CREATE OR REPLACE FUNCTION test_64(int4,date,date,date) RETURNS int4 AS '
DECLARE
cost1 integer;
clicks1 integer;
time_now_mod date;
fr_dat_mod date;
to_dat_mod date;
BEGIN
SELECT INTO clicks1 clicks FROM ad_stat WHERE id = $1 AND otype=2;
SELECT INTO cost1 cost FROM ad_banner_set WHERE id = $1;
SELECT INTO time_now_mod EXTRACT(EPOCH FROM $2);
SELECT INTO fr_dat_mod EXTRACT(EPOCH FROM $3);
SELECT INTO to_dat_mod EXTRACT(EPOCH FROM $4);

IF clicks1 > 0
THEN
return cost1::float8*(time_now_mod-fr_dat_mod)/(to_dat_mod-fr_dat_mod)*clicks1::float8;
ELSE
return 0;
END IF;

END;'
LANGUAGE 'plpgsql';

...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / функция перевода в секунды
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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