Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / функция перевода в секунды / 13 сообщений из 13, страница 1 из 1
14.04.2006, 12:20
    #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
14.04.2006, 12:35
    #33666902
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
сдаётся мне что-то не правильно с типом данных =), но что ?
...
Рейтинг: 0 / 0
14.04.2006, 12:49
    #33666970
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
сдаётся мне что-то не правильно с типом данных =), но что ?
...
Рейтинг: 0 / 0
14.04.2006, 13:41
    #33667201
Andrey Daeron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
А шо такое
time_now ?
если текущее время то лучше посмотерть

http://www.postgresql.org/docs/8.1/interactive/functions-datetime.html
...
Рейтинг: 0 / 0
14.04.2006, 14:07
    #33667313
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
действительно... =) спасиб
...
Рейтинг: 0 / 0
14.04.2006, 15:46
    #33667682
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
хотя проблема осталась... не в этом дело..
...
Рейтинг: 0 / 0
14.04.2006, 15:57
    #33667732
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
хотя проблема осталась... не в этом дело..
...
Рейтинг: 0 / 0
14.04.2006, 17:25
    #33668045
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
нам по 2 раза повторять ненадо.. мы понимаем с первого :)
...
Рейтинг: 0 / 0
14.04.2006, 18:10
    #33668185
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
sorry , случайно
...
Рейтинг: 0 / 0
14.04.2006, 18:23
    #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
14.04.2006, 18:46
    #33668268
wbear
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
мож стоит попробовать убрать в ковычки для $1 $2 ?
...
Рейтинг: 0 / 0
17.04.2006, 10:39
    #33670356
grey_hu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция перевода в секунды
нет, не стоит =( ...
это тоже неправильно..
...
Рейтинг: 0 / 0
17.04.2006, 10:54
    #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
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / функция перевода в секунды / 13 сообщений из 13, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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