Снова манипуляции с датами...
В теме суть вопроса изложить было сложно.
Подскажите, пожалуйста, как грамотно организовать следующее...
Существуют в БД записи у которых есть два поля типа Дата/Время.
В одном - дата внесения в БД, в другом дата изменения записи.
Далее для каждой записи требуется задать т.н. время актуальности (к примеру, запись группы 1 актуальна на протяжении 1 дня, 2 часов, 14 минут, 20 секунд...).
Не придумал ничего лучше, как задать текстовое поле в котором указанное ограничение по времени будет задано как 1|02:14:20 (здесь соответсвенно |-разделитель дней, : - для всего остального).
Предполагается в дальнейшем выбирать в запросе нужные мне значения.
Теперь сделать нужно следующее: отобрать все записи, что утратили время актуальности на момент изменения.
Т.е. в моей реализации требуется: найти разницу между двумя датами (ну, тут например DateDiff), далее проанализировать поле с ограничением выбрать последовательно, опираясь на разделители, нужные мне участки записи - день, час, минута, секунда... Каждое из значений умножить/разделить на нужный коэффициент (например, если DateDiff вернет разницу в часах, то соответственно переводим все в часы). И только потом сравнивать.
Запрос получается крайне большим, неказистым... И вообще есть стойкое ощущение, что сделал я крайне неудобно:(
Может быть решал кто-нибудь подобную задачу? Как это сделать по-человечески?
Я бы сделал это поле в секундах, и в запросе - условие: "если разница ПоляИзменения и ПоляДобавления больше ПоляАктуальности"
Цитата: mfender
Я бы сделал это поле в секундах, и в запросе - условие: "если разница ПоляИзменения и ПоляДобавления больше ПоляАктуальности"
Все гениальное просто:)
Вообще наворочено это было в свое время для того, чтобы наглядно отображать содержимое в гриде в виде (hh:mm:ss)...
Пожалуй, последую совету, переделаю. Спасибо большое за ответ.