Modber Сообщество
профессионалов по 1С

Вопрос по функции РАЗНОСТЬДАТ

  
Сообщений: 19

0
1С версии 8.2. Нужно вычислить в запросе количество лет между двумя датами. Пишу так:
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2011, 10, 6),ДАТАВРЕМЯ(2012, 01, 06), ГОД)- результат 1, но ведь года не прошло.
Сообщений: 1

0
То есть Вам нужно, чтобы был результат — 0? Используйте в качестве третьего параметра не ГОД, а МЕСЯЦ. Результат дели на 12 и отбрасывай дробную часть (функция ЦЕЛ).
Сообщений: 2

0
Артур:

То есть Вам нужно, чтобы был результат — 0? Используйте в качестве третьего параметра не ГОД, а МЕСЯЦ. Результат дели на 12 и отбрасывай дробную часть (функция ЦЕЛ).

месяц тоже неправильно считает
Код 1C:
  1. ВЫБРАТЬ
  2. РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1980, 3, 19), ДАТАВРЕМЯ(2013, 3, 13), МЕСЯЦ)
результат 396 месяцев (33 года)
а по факту 32 года 11 месяцев 26 дней
Код 1C:
  1. ВЫБРАТЬ
  2. РАЗНОСТЬДАТ(ДАТАВРЕМЯ(1980, 3, 19), ДАТАВРЕМЯ(2013, 4, 1), МЕСЯЦ)
результат 397 месяцев, хотя по факту 396 месяцев и 13 дней
Сообщений: 2

0
Правильное количество месяцев можно посчитать так
Код 1C:
  1.  
  2. ВЫБРАТЬ РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(1980, 3, 19), МЕСЯЦ), ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДАТАВРЕМЯ(2013, 3, 13), МЕСЯЦ), СЕКУНДА, -1), МЕСЯЦ)
Сообщений: 59

0
Владимир, всегда удобно использовать запрос, который может быть проработан в Схеме Компановки Данных, в функциях Общего модуля с секундами, которые потом и приводить в удобный вид (год, месяц, день...), при помощи дописанной функции. В запросе нужно прибавлять 1 минуту, если секунды не равны 0.
В начало страницы 
|
Перейти на форум: