Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Снова манипуляции с датами...

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



Все гениальное просто:)
Вообще наворочено это было в свое время для того, чтобы наглядно отображать содержимое в гриде в виде (hh:mm:ss)...
Пожалуй, последую совету, переделаю. Спасибо большое за ответ.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог