![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Форумчанин
Регистрация: 02.09.2008
Сообщений: 340
|
![]()
всем привет скажите как при использовании функции DATEDIFF не учитывать к примеру один час(с 8 до 9) вывести к примеру сколько работал сотрудник не учитывая обедненный перерыв
Цитата:
|
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
1) Какая у Вас СУБД ?
2) очень-очень боюсь, что в функции DATEDIFF нельзя не учитывать один час.. 3) для решения задачи нужно писать свою функцию (и я бы не сказал, что она будет очень простой и элементарной!) Там нужно разбирать промежуток времени на такой, в который заданный час исключения входит ПОЛНОСТЬЮ и и такие, которые пересекаются с часом исключения (ну, например, время начала периода 8:45 минут... или время окончания: 8:30) для тех промежутков времени, которые захватывают час полностью высчитывать количество дней (фактически, это даст количество часов, которые нужно отнять от финального времени)... это только один из возможных вариантов решения данной проблемы. На самой деле их (вариантов решения) может быть множество! |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Полностью согласен с Serge_Bliznykov. Если данные передатся в программу, то гораздо проще потянуть в неё время начала и время конца, сделать вычисляемое поле в DataSet и с минимальными трудозатратами рассчитать, что займет несколько строк кода.
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 02.09.2008
Сообщений: 340
|
![]()
а если не использовать DATEDIFF, другим способом можно?
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Имя СУБД вашей очень секретно наверно? А все другие способы все равно сведутся к тому, что в посте 3 указаны - работа с функциями даты-времени, которые, кстати, в различных СУБД в общем случае имеют разный формат
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 02.09.2008
Сообщений: 340
|
![]()
MS SQL SERVER
Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Claster,
решили ли Вы свою проблему ? Если нет - Вас функция на сервере устроит? (почему спрашиваю - заморачиваться с её написанием или нет...) |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
функции convert, datediff | Veroonya | БД в Delphi | 8 | 09.02.2009 11:13 |