Eu tenho tabela de usuário e equipe.
- tabela de usuário tem
month, day, id, timezone and team_id
- tabela da equipe tem
time (24 hour format) and id
Eu tenho que encontrar todos os usuários para os quais o horário em seu fuso horário local é igual ao horário especificado para sua equipe. Meu cron runs every 15 minute
, então eu quero ter certeza de que nenhum usuário foi perdido. Como escrever uma consulta postgres para isso. Escrevi a consulta abaixo, mas quero estendê-la para que leve todos os casos mencionados acima
Cron roda em 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);
Se eu entendi bem a estrutura e as dependências da sua tabela, isso deve funcionar.
Primeiro crie uma tabela para rastrear os usuários que receberam desejos:
Em seguida, use a consulta para selecionar usuários qualificados e inseri-los na tabela wish_users enquanto considera o intervalo de tempo: