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 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