Имя: Пароль:
1C
1С v8
Чудеса с датами в запросе.
0 folo
 
20.03.19
13:08
Добрый день. Имеем запрос с условием запроса     
"где ДЕНЬГОДА(Сотрудники.ФизическоеЛицо.ДатаРождения) МЕЖДУ ДЕНЬГОДА(&НачДата) И ДЕНЬГОДА(&КонДата) "
Нач дата = ТекущаяДата().
КонДата =  ТекущаяДата()+86400*3, т.е через 3 дня.
В результат попадает вчерашний день.
Проверяем : Дата рождения сотрудника - 19.03.88. ДеньГода возвращает 79.
Проверяем : Сегодня  - 20.03.19. ДеньГода возвращает тоже 79.
Кто нибудь с таким встречался ? Чо за бред ?
1 folo
 
20.03.19
13:09
Думал даже может она по Гринвичу время берет. Но до 12 и после 12 ничего не меняется.
2 Zmich
 
20.03.19
13:10
(0). 1988 был високосным годом
3 Chameleon1980
 
20.03.19
13:10
Выведи сами проверяемые поля в запрос
4 Chameleon1980
 
20.03.19
13:11
ой
5 folo
 
20.03.19
13:11
Вывел. Возвращает разные даты. Но день года одинаковый.
6 folo
 
20.03.19
13:12
..1988 был високосным годом. Кстати это идея.
7 mistеr
 
20.03.19
13:12
(0) 1988 високосный год. С учетом 29-го февраля 19 марта это 79-й по счету день.

Переделывай алгоритм проверки.
8 folo
 
20.03.19
13:13
Уже понял в чем причина. Спасибо коллеги.
9 Сияющий в темноте
 
20.03.19
17:03
дату рождения привести в текущий год и сравнивать с текущими датами без всяких там дней года.
10 Сияющий в темноте
 
20.03.19
17:04
и не забыть новый год рассмотреть,т.к.таи или предыдущий или следующий.
11 Rovan
 
гуру
20.03.19
17:16
(0) надо не ДЕНЬГОДА, а к нач года ДОБАВИТЬ месяцев и Добавить ДНЕЙ
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший