我有用户和团队表。
- 用户表有
month, day, id, timezone and team_id
- 团队表有
time (24 hour format) and id
我必须找到本地时区时间等于其团队指定时间的所有用户。我的cron runs every 15 minute
所以我想确保没有用户被遗漏。如何为此编写 postgres 查询。我已经写了下面的查询,但我想扩展它,以便它可以处理上面提到的所有情况
Cron 在 Nodejs 中运行
SELECT id, timezone
FROM user_table
WHERE EXTRACT(HOUR FROM NOW() AT TIME ZONE 'UTC' AT TIME ZONE user_table.timezone) = 9
AND day = EXTRACT(DAY FROM NOW() AT TIME ZONE 'UTC' AT TIME ZONE user_table.timezone)
AND month = EXTRACT(MONTH FROM NOW() AT TIME ZONE 'UTC' AT TIME ZONE user_table.timezone);
如果我的表结构和依赖关系正确,那么这应该可以工作。
首先创建一个表来跟踪收到愿望的用户:
然后使用查询选择符合条件的用户并将其插入到 Wished_users 表中,同时考虑时间范围: