Всё зависит от того, как построена логика Вашего приложения или сайта. +1 запрос (а скорее даже не запрос, а доп. условие на что-то), вида:
SELECT IF ((NOW() + INTERVAL 15 DAY) > row_date_value, 'that', 'then') AS result
-- особых проблем не добавит, такие расчёты на уровне БД ведутся довольно быстро, к тому же, как можно заметить, в этом примере нет обращения к таблицам непосредственно, мы берём уже заранее готовое (полученное) значение.
Но, с другой стороны, контролировать логику работы на уровне БД, пожалуй не самое практичное решение. В 99% случаев, есть более правильные механизмы реализованные на уровне фреймворка, так же как например, авторизация. Вы же не проверяете можно ли пользователю создавать запись новостей на сайте, на уровне БД?
В частности, в зависимости от системы/фреймворка, подобная логика проверок и валидаций обычно встроена и оптимальным решением будет использовать именно её (как именно она устроена, можно посмотреть на примере модуля авторизации Вашей системы).
Если же вопрос стоит исключительно в критичность доступности данных, в частности, эти данные нужно получать "молниеносно", а дата до которой продлена подписка - лежит где-то глубоко в БД и постоянные проверки сильно нагружают файловую систему сервера - можно воспользоваться временными таблицами которые хранятся в памяти, или закэшировать эти данные Redis или Memcached и получать их оттуда максимально быстро с минимальной нагрузкой на сервер.
Если вопрос состоит в том, как лучше сверять даты на уровне "контроллера" (или чего-то ему аналогичного) - Вы можете перевести дату в число Unix-timestamp и сравнивать два числа, быстро и удобно.