Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

сравнение даты с текущей [D6, MSSQL]


diwww ©   (2005-08-16 15:19:00) 

В базе есть поле "дата окончания". В клиентском приложении при просмотре записи если "дата окончания" < текущей даты, то надо выводить особую отметку. Вопрос в том как реализовать это сравнение? Есть несколько идей: сделать доп. вычисляемое поле в бд, сделать вьюшку, сравнивать даты в клиентском приложении в момент промотра. Каким способом лучше делать это? Даже просто интересно, как полагается поступать в таких случаях?
субд -- mssql server 2000


Nikolay M.   (2005-08-17 10:12:00) [1]


> Deniz ©   (17.08.05 06:10) [5]
> И даже если может, все клиенты работают с одной датой(серверной)

Унификация - это, конечно, хорошо, но попробуй это объяснить менеджеру, который продал товар со склада в минус, потому что на сервере некстати произошел переход на зимнее время.


Deniz   (2005-08-17 06:10:00) [2]

>Nikolay M. ©   (16.08.05 16:47) [4]
И даже если может, все клиенты работают с одной датой(серверной)


Nikolay M.   (2005-08-16 16:47:00) [3]


> Плохиш ©   (16.08.05 16:12) [3]
> Это следует понимать, что время на сервере не может быть
> выставлено любым?

Если это действительно Сервер и у него есть Админ - да, не может :)


Плохиш   (2005-08-16 16:12:00) [4]


> Nikolay M. ©   (16.08.05 15:38) [1]
> Но в любом случае делать это на сервере, т.к. время на клиентском
> компьютере может быть выставлено любым.

Это следует понимать, что время на сервере не может быть выставлено любым?

> diwww   (16.08.05 15:19)
>  Даже просто интересно, как полагается поступать в таких
> случаях?

У нас демократия, официальных предписаний утверждённых ООН на этот случай нет.


Fay   (2005-08-16 15:56:00) [5]

2 diwww   (16.08.05 15:19)
Пример для базы PUBS

set nocount on

declare @dt datetime

select @dt = DateAdd(day, DateDiff(day, '', GetDate()), '')
-- Или просто select @dt = GetDate(), если нужно со временем

select
 stor_id,  ord_num,
 ord_date,
 qty,
 payterms,
 title_id,
 YourField = case when ord_date < @dt then 1 else 0 end
from sales


Nikolay M.   (2005-08-16 15:38:00) [6]


> Вопрос в том как реализовать это сравнение?

Например, с помощью знака "меньше" ("<"), примененному с умом  в SQL-запросе.
Но в любом случае делать это на сервере, т.к. время на клиентском компьютере может быть выставлено любым.


Наверх

Титульная страница Поиск, карта сайта Написать письмо