Я рекомендую использовать представление:
create view v_t as
select . . .,
(case when now() >= expiring_date then 'Stand by' else status end) as status
from t;
Это вычисляет статус, когда представление прочитано , поэтому вам не нужно беспокоиться об изменении статусов. Статус всегда правильный.
Затем, на досуге, вы можете go обновить статусы в данных с помощью задания.
При таком подходе ваши приложения гарантированно увидят правильный статус.