![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
сравнение даты с текущей [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-запросе.
Но в любом случае делать это на сервере, т.к. время на клиентском компьютере может быть выставлено любым.