Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Получение разницы между датами в запросе (число прочтений - 2939 )
LDS
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 05. Ноября 2006
Получение разницы между датами в запросе
17. Декабря 2006 :: 14:16
Печать  
Подскажите пожалуйста есть ли функция для определения разницы между датами в днях.
Например, мне нужно найти разницу между указанной датой и датой оплаты документа и если разница больше 10 - посчитать сумму долга

select
КредДокумент [КредДок $Документ],
$ДокРеал.ДатаОплаты as датаОплаты,
:КонДата-$ДокРеал.ДатаОплаты as Разница10,
CASE
 WHEN  :КонДата-$ДокРеал.ДатаОплаты>10
 THEN РегОст.СуммаРубОстаток
 ELSE 0
END AS КонОстП10

from $РегистрОстатки.Покупатели as РегОст
left join $Документ.Реализация as ДокРеал on ДокРеал.IDDOC=right(РегОст.КредДокумент,9)

Такая конструкция :КонДата-$ДокРеал.ДатаОплаты as Разница10 не работает
  
Наверх
 
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Получение разницы между датами в запросе
Ответ #1 - 17. Декабря 2006 :: 14:24
Печать  
Используй DATEDIFF
Например такая конструкия рассчитает разницу между датой документа и реквизитом Дата_выдачи. Но если Дата_выдачи пустая, то разница будет с текущей датой...

Код
Выбрать все
DATEDIFF (day, CAST(LEFT(Журн.DATE_TIME_IDDOC,8) AS datetime),
COALESCE(NULLIF($Док.Дата_выдачи ,CAST('17530101' AS DATETIME)),GETDATE()) ) 

  
Наверх
 
IP записан
 
LDS
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 17
Зарегистрирован: 05. Ноября 2006
Re: Получение разницы между датами в запросе
Ответ #2 - 17. Декабря 2006 :: 14:32
Печать  
Спасибо
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать