powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Глюк в Шедюлере MSSQL7
4 сообщений из 4, страница 1 из 1
Глюк в Шедюлере MSSQL7
    #32002663
Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пытаюсь выполнить запрос через SQL Server Agent - Jobs.
Там в одном из шагов задана вставка новых записей.
Так вот глюк проявляется при вставке smalldatetime.
Нужно вставить текущий день, если пишу Getdate - то вставляется
с часами и минутами и т.д.
Написал с помощью convert(char(12), getdate(),104) - попробывал
в QA - работает, а через шедьюлер нет - пишет в логах что не может
вставить - нарушена уникальность(там есть такой индекс),
хотя я проверял - нет там никаких данных за текущий дэнь.

Помогите.
...
Рейтинг: 0 / 0
Глюк в Шедюлере MSSQL7
    #32002666
Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кажеться поборол!
Надо два раза преобразовать GetDate() - сначала в char(12) - обрезав
время, потом в smalldatetime, причем указав тип даты 0,
потому что на серваке другой хз-шный формат времени.

convert(smalldatetime, (convert(char(12), getdate(),104)))

Вот так вот...
...
Рейтинг: 0 / 0
Глюк в Шедюлере MSSQL7
    #32002667
Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А вообще - почему такое происходит?
В QA Я могу писать дату как 'DD.MM.YYYY' или еще как-нить,
на лету понимается, а в MMC такое не проходит?
...
Рейтинг: 0 / 0
Глюк в Шедюлере MSSQL7
    #32002807
dmitry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что аккаунт под которым работает SQL сервер - агент, который и выполняет работы, имеет другие настройки и понимает дату наоборот. Например, у тебя локаль русская и в QA дата выводится преобразуется в символьный формат в виде DDMMYYYY, а у него (агента) - английская и он понимает наоборот - MMDDYYYY. В результате дата получается неправильная и нарушается идентичность. Ты смотришь например 01.03 в русском формате даты(1 марта) и там такой записи нет. А он думает что 01.03- это английский формат (3 января) и такая запись уже есть. Рано или поздно ошибка о нарушении идентичномти перейдет в ошибку преобразования дат (когда число в дате станет >12)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Глюк в Шедюлере MSSQL7
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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