С тарификацией по дням начинают вылазить копейки, на которые больно смотреть.
СУБД умеет работать с датами. Я у себя на самописном билинге делал два поля begin_date и end_date и туда писал текущий день и день снятия слудующей абонплаты
begin_date = current_date();
end_date = current_date() + interval 1 month;
И сразу видно за какой период абонка снята и когда в следующий раз абонент попадет в выборку на снятие абонки.