Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Преобразование типа данных char в тип данных datetime  [new]
gigadedushka
Member

Откуда:
Сообщений: 182
Такая штука не работает в русском SQL 2005 (вроде путает день и месяц местами для английских формат дат). Читал что такие вещи решаются сменой языка в настройках SQL c русского на английский. Единственное что я смог сделать, это указать язык по умолчанию - английский в дополнительных свойствах сервера, но это не решило проблему. Переустанавливать анлийский вариант SQL Server можно, но хочется сперва посмотреть, может и русский удастся настроить должным образом. Помогите.
25 апр 09, 14:46    [7113976]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
vino
Member

Откуда:
Сообщений: 1191
gigadedushka, при чем здесь английский или русский - порядок частей в дате определяется при преобразовании в convert (стилем), либо установкой формата для неявного преобразования SET DATEFORMAT mdy для английского варианта
25 апр 09, 14:52    [7113983]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
Crimean
Member

Откуда:
Сообщений: 13147
тыкаю пальцем - используйте явно третий параметр функции CONVERT:

BOL
Using CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
25 апр 09, 15:02    [7113992]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
gigadedushka
Member

Откуда:
Сообщений: 182
Я с вами полностью согласен, но дело в том, что запросы эти (скрипты) - не мои. Они встроены в программу развертывания новой базы одной ИС. поэтому подправить я их не могу. Люди, что создавали ИС, видимо не учли момент использования русского SQL.
25 апр 09, 15:32    [7114020]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
gigadedushka
Member

Откуда:
Сообщений: 182
Вот полный тескт, который генерирует их установщик:

автор
Ошибка:
Преобразование типа данных char в тип данных datetime привело к значению datetime за пределами диапазона.
Выполнение данной инструкции было прервано.

Комментарий: create-database.sql:
INSERT INTO PRJTYPES (PRJTYPE_ID, PRJTYPE_NOTE, PRJTYPE_NAME, PRJTYPE_ICO, CREATOR, CREATE_DATE, CHANGER, CHANGE_DATE, PRJTYPE_NOTE_TEMPLATE, PRJTYPE_NOTE_GEN_TYPE)VALUES(1, 'Документация', '', NULL, 1, '2003-05-14 17:19:21', 1, '2007-06-15 14:05:51', '', 0)

Стэк вызовов:
в System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
в System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
в System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
в System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
в System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async)
в System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)
в System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
в TCS.Installer.SqlTools.ExecuteScriptBatch(IConnectInfoContext connectionInfo, List`1 scripts, EventHandler`1 handler)
в TCS.Installer.Application.ServerComponents_OnExecute(Object sender, FeatureEventArgs e)
в TCS.Installer.Feature.Execute()
в TCS.Installer.Application.SetupProgress_OnExecute(Object sender, SequenceEventArgs e)
25 апр 09, 15:52    [7114035]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
gigadedushka
Member

Откуда:
Сообщений: 182
как видно, они об использовании CONVERT даже и не думали. Смысла сейчас их ругать нет, так как проблема ими решена будет не скоро. Поэтому я повторю свой вопрос: можно ли настроить сервер так, чтобы он обходил данную ситуацию?
25 апр 09, 15:54    [7114036]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Поиграйтесь с параметром default language того логина, под которым ихний софт коннектится к серверу - в зависимости от него автоматически будет меняться DATEFORMAT.
25 апр 09, 16:14    [7114051]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
gigadedushka
Member

Откуда:
Сообщений: 182
Прокатило, спасибо большое
25 апр 09, 19:53    [7114287]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
Steepler
Guest
Ennor Tiegael,

Помог Ваш совет, спасибо
21 май 09, 10:14    [7207488]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Преобразование типа данных char в тип данных datetime  [new]
fjoy
Guest
Ennor Tiegael, спасибо, помогло =)
29 июн 11, 15:13    [10893513]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
maxi03
Guest
Ennor Tiegael спасибо выручил!
10 окт 11, 10:09    [11410601]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
kabanoff
Guest
Ennor Tiegael,

Спасибо, сработало!
9 ноя 11, 11:00    [11567859]     Ответить | Цитировать Сообщить модератору
 Re: Преобразование типа данных char в тип данных datetime  [new]
Gerschwin
Member

Откуда:
Сообщений: 1
Спасибо. Сам очень долго бы искал (и скорее всего так бы и не нашел).
24 дек 11, 22:02    [11820879]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить