![]() |
|
Модераторы: Akina |
![]()
|
|
| MadCoder |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Использую DateDiff в MS SQL Server 2005, однако недавно натолкнулся на неожиданность: он округляет до следующего целого значения. В случае, если это год, выглядит совсем некорректно. Проведем эксперимент, выполнив 3 запроса:
Результат: 2009-08-12 10:26:21.177.
Результат: 25 (хотя должно быть 24).
Результат: 24 (тут подсчитал правильно). Коллеги, неужели DateDiff округляет значения в в большую сторону? |
||||||
|
|||||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
2009-1984=25 О каком округлении идет речь? Это ты округляешь (точнее игнорируешь дробную часть) во втором случае, вот и получаешь 24 вместо 25-и. В месяцах получается 24*12+(11-8)=291, 291/12=24.25 (убираем дробную часть) = 24 Это сообщение отредактировал(а) azesmcar - 12.8.2009, 09:52 |
|||
|
||||
| MadCoder |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 478 Регистрация: 24.8.2007 Где: Москва Репутация: нет Всего: 2 |
Т.е. DateDiff не учитывает, что дата еще не наступила (по логике, 25 лет будет в 11 месяце, а сейчас 8)? |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
||||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 25 Всего: 454 |
Не выделяет, а приводит к заданному интервалу ('1984-11-22 00:00:00' = 1984,89315) и округляет до целого. Потом вычитает. Это только в случае года что приведение, что выделение, дают один и тот же результат. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: нет Всего: 211 |
А мы о каком случае говорим? В итоге он это и делает, алгоритм я не знаю, в MSDN этого не написано. |
|||
|
||||
![]()
|
| Правила форума "MS SQL" | |
|
|
Запрещается! Публиковать ссылки и обсуждать взлом чего бы то ни было.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS SQL Server | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |