last_charge NOW () - ИНТЕРВАЛ payment_period
Вам не хватает двух вещей:
- оператор между датами для сравнения (> =)
- единица измерения для интервала
Предполагая, что payment_period выражается в днях, вы хотите:
last_charge >= NOW() - INTERVAL payment_period DAY
Другой возможностью является сохранение unit
в другом столбце.и затем:
last_charge >= CASE
WHEN unit = 'DAY' THEN NOW() - INTERVAL val DAY
WHEN unit = 'MONTH' THEN NOW() - INTERVAL val MONTH
-- ... other supported units ...
END