Re: [GENERAL] Plpgsql - Custom fields Postgres 9.5

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: [GENERAL] Plpgsql - Custom fields Postgres 9.5
Дата
Msg-id d950d9a4-1dd3-5a39-9ff9-2e666d48444f@aklaver.com
обсуждение исходный текст
Ответ на [GENERAL] Plpgsql - Custom fields Postgres 9.5  (Patrick B <patrickbakerbr@gmail.com>)
Ответы Re: [GENERAL] Plpgsql - Custom fields Postgres 9.5
Список pgsql-general
On 12/14/2016 01:17 PM, Patrick B wrote:
> Hi,
>
> I've got this query, that I manually run it once a month:
>
>     SELECT
>         uuid,
>         clientid),
>         *
>     FROM
>         logging
>     WHERE
>         logtime
>     BETWEEN
>         '201611015'
>     AND
>         '201612015'
>
>
>
> As you can see, I select a date. So in December, the date will be:
> *BETWEEN '201612015' AND '201601015'*, for example.
>
> I always need to run this on the 15th of each month.
> I was thinking about creating a PLPGSQL function and a Cron task, so
> this task can be automated.
>
> Also, the file must be saved with the date+.csv. Example:
>
>         CREATE or REPLACE FUNCTION logextract(date_start integer,
>         date_end integer)
>
>             RETURNS void AS $$
>
>             begin
>
>               execute '
>
>               COPY
>
>                   (
>
>                   SELECT
>
>                       uuid,
>
>                       clientid),
>
>                       *
>
>                   FROM
>
>                       logging
>
>                   WHERE
>
>                       logtime
>
>                   BETWEEN
>
>                      ' || date_start || '
>
>                   AND
>
>                       ' || date_end || '
>
>                   )
>
>               TO ''/var/lib/postgresql/'|| date_start ||'_logs.csv''';
>
>             end
>
>             $$ language 'plpgsql';
>
>
>
> *Questions:*
>
> 1. Why when I run the function manually I get this error?
>
>         select logextract(201612015, 201612015);
>
>         ERROR:  operator does not exist: timestamp without time zone >=
>         integer
>
>         LINE 13:                 BETWEEN

The answer is above. Look at your original query at the top of the post.

>
>
>  I presume this is wrong: _CREATE or REPLACE FUNCTION
> logextract(date_start integer, date_end integer) _- But what should I
> use instead?
>
>
> 2. To call the function, I have to login to postgres and then
> run: select logextract(201612015, 201612015);
> How can I do it on cron? because the dates will be different every time.
>
> Thanks
> Patrick


--
Adrian Klaver
adrian.klaver@aklaver.com


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

Предыдущее
От: Patrick B
Дата:
Сообщение: [GENERAL] Plpgsql - Custom fields Postgres 9.5
Следующее
От: Patrick B
Дата:
Сообщение: Re: [GENERAL] Plpgsql - Custom fields Postgres 9.5