Глюк в Шедюлере MSSQL7

Евгений
Дата: 01.03.2001 20:40:54
Пытаюсь выполнить запрос через SQL Server Agent - Jobs.
Там в одном из шагов задана вставка новых записей.
Так вот глюк проявляется при вставке smalldatetime.
Нужно вставить текущий день, если пишу Getdate - то вставляется
с часами и минутами и т.д.
Написал с помощью convert(char(12), getdate(),104) - попробывал
в QA - работает, а через шедьюлер нет - пишет в логах что не может
вставить - нарушена уникальность(там есть такой индекс),
хотя я проверял - нет там никаких данных за текущий дэнь.

Помогите.
Евгений
Дата: 01.03.2001 21:28:02
Кажеться поборол!
Надо два раза преобразовать GetDate() - сначала в char(12) - обрезав
время, потом в smalldatetime, причем указав тип даты 0,
потому что на серваке другой хз-шный формат времени.

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

Вот так вот...
Евгений
Дата: 01.03.2001 21:29:15
А вообще - почему такое происходит?
В QA Я могу писать дату как 'DD.MM.YYYY' или еще как-нить,
на лету понимается, а в MMC такое не проходит?
Dmitry
Дата: 06.03.2001 16:09:28
Потому что аккаунт под которым работает SQL сервер - агент, который и выполняет работы, имеет другие настройки и понимает дату наоборот. Например, у тебя локаль русская и в QA дата выводится преобразуется в символьный формат в виде DDMMYYYY, а у него (агента) - английская и он понимает наоборот - MMDDYYYY. В результате дата получается неправильная и нарушается идентичность. Ты смотришь например 01.03 в русском формате даты(1 марта) и там такой записи нет. А он думает что 01.03- это английский формат (3 января) и такая запись уже есть. Рано или поздно ошибка о нарушении идентичномти перейдет в ошибку преобразования дат (когда число в дате станет >12)