如果查询返回任何数据,我有一个需要每小时运行一次的查询来发送警报。为避免在非工作时间接收更改,如果当前时间在美国东部时间上午12点到早上7点之间,我不希望此查询运行。
以下是SQL在当前状态下的显示方式:
SELECT * FROM (
SELECT FLOOR(EXTRACT(EPOCH FROM (now() - updated_at))/60) :: INT as minutes_since_update
FROM table_a
WHERE column_a IS TRUE AND column_b IS NULL
LIMIT 1) a
WHERE minutes_since_update > 60
如何更改此查询以使其在非工作时间内无法运行。
我试过这个,但我不清楚为什么它不起作用。
SELECT * FROM (
IF (SELECT CURRENT_TIME BETWEEN '04:00:00' AND '11:00:00') THEN
SELECT 0 as minutes_since_update FROM table_a where true = false;
ELSE
SELECT FLOOR(EXTRACT(EPOCH FROM (now() - updated_at))/60) :: INT as minutes_since_update
FROM table_a
WHERE column_a IS TRUE AND column_b IS NULL
LIMIT 1;
END IF;
) a
WHERE minutes_since_update > 60
答案 0 :(得分:0)
只需将该子句置于WHERE条件中即可。
const {currentUser} = firebase.auth();
firebase.database().ref(`/friendships/${currentUser.uid}`).on('value, snapshot => { //redux dispatch action, payload: snapshot.val() })
但是,我可能会使用像pg_cron