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

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

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

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


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