Estou tentando escrever uma expressão de caso onde ela olha para a data de vencimento e, se já passou, escolhe a data de vencimento próxima ou mais próxima. Agora, devido a certa restrição de banco de dados, tenho que fazer isso manualmente. O problema é que meu código está comparando o dia extraído (a) do due_date com o dia extraído (b) do time_stamp atual e se a < b significa que a data de vencimento do mês atual passou e o próximo seria ( a / mês atual + 1) <- Exemplo de formato de data a / Out.
Agora o problema é se o mês atual for 12 (dez) isso faria o próximo vencimento a/13 que eu não quero. Alguma maneira de limitar a 12 e redefinir para 1?
Além disso, pontos de bônus se você puder me ajudar na parte do ano?
due_date |current_timestamp | Result
----------- ----------------- -----------
2021-12-05 |2022-10-18 | 2022-11-05
2022-06-02 |2022-10-18 | 2022-11-02
2022-10-19 |2022-10-18 | 2022-10-19
2022-10-15 |2022-10-18 | 2022-11-15
2021-10-20 |2022-10-18 | 2022-10-20
CASE
WHEN EXTRACT(DAY FROM due_date ) < EXTRACT(DAY FROM CURRENT_TIMESTAMP) THEN CONCAT(EXTRACT(DAY FROM due_date ),'/',(EXTRACT(Month FROM CURRENT_TIMESTAMP))+1)
ELSE CONCAT(EXTRACT(DAY FROM due_date ),'/',(EXTRACT(Month FROM CURRENT_TIMESTAMP)))
END AS "Next Payment Date"