Postgres' sleep functions are not particularly useful, as they should only be utilized for demonstration purposes (like provoking locking situations and then trying to find out who blocked whom).
After years of using the
pg_sleep() function, which takes seconds as its input argument, I one day discovered that there are more convenient functions that even accept human readable input!
SELECT now(); SELECT pg_sleep_for('5 minutes'); SELECT /* then do something …. */ SELECT pg_sleep_until('tomorrow 03:00');