powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / некорректная работа dateadd?
11 сообщений из 11, страница 1 из 1
некорректная работа dateadd?
    #32074093
Dennizz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
объясните мне следующее поведение dateadd

select dateadd(qq,-1,dateadd(qq,1,'19990331'))

получаем
1999-03-30 00:00:00.000

вместе
1999-03-31 00:00:00.000

ps: блин, полдня сегодян убил, пытаясь понять в чем дело :(
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074106
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это из-за того, что квартал - нечеткое понятие. Нет строгого определения "квартал". Поэтому минус квартал и плюс квартал могут различаться в один-два дня.
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074118
Dennizz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я все-таки надеялся на адекватное поведение...
хотя, наверное, вы правы.
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074120
Axr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А это так и задумано у MS, так что Вы с dateadd() поосторожнее, постоянный источник недоразумений.
2 Dankov
И вовсе не только с кварталами:
select dateadd(mm,-1,dateadd(mm,1,'30-01-2001'))
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074122
Фотография ziktuw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"месяц" - тоже нечеткое понятие. Это сколько дней - 30, 31 или 28? Поэтому и проблема такая же
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074127
Axr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dankov
Именно это и имелось в виду. А интуитивно человек считает, что X+N-N равно X, поэтому и надо быть поаккуратнее с dateadd().
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074147
Dennizz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо за разъяснения...
Но, блин, эмоции через край
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074412
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если надо разбираться с кварталами, то попробуйте использовать советы из FAQ
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074460
Dennizz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
угу, спасибо
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074578
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я не вижу ничего странного. Он же сначала делает dateadd(qq,1,'19990331') и получает 19990630 (31 июня же не бывает). Потом от этой даты отнимает квартал - естественно получается 19990331.
...
Рейтинг: 0 / 0
некорректная работа dateadd?
    #32074600
Фотография mahoune
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и мне кажется что все правильно! А в функцияи этой можно даже указать какая неделя года считается первой! Так что наверное все ок!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / некорректная работа dateadd?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]