Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
waszkiewicz Member Откуда: Сообщений: 1089 |
exec sp_executesql N'select p.id id ,f.id fid ,t.parentid parentid ,rtrim(registrationnumber)+''(''+rtrim(serialnumber)+'')'' ac ,rtrim(plf.icaoCode)+'':''+rtrim(plt.icaoCode) leg from rplane p join types t on t.id=p.model join flight f on f.ac=p.id join places plf on plf.id=f.place_from join places plt on plt.id=f.place_to where f.[date]=@date order by rtrim(registrationnumber)+''(''+rtrim(serialnumber)+'')''',N'@date datetime',@date='2015-09-30 00:00:00' получаю ошибку - Msg 8114, Level 16, State 5, Line 0 Ошибка при преобразовании типа данных varchar к datetime. На клиенте передаю DateTime
public DataTable FlightsByDate(DateTime flightDate)
что не так? |
1 окт 15, 15:19 [18221242] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Вы опять в datetime суете неправильную символьную строку |
||
1 окт 15, 15:22 [18221263] Ответить | Цитировать Сообщить модератору |
waszkiewicz Member Откуда: Сообщений: 1089 |
Glory, сую не я, сует компонент Calendar. Забавно, что с INSERT прокатывает |
1 окт 15, 15:32 [18221316] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Ну да, мопед не мой, я только объяву разместил. |
||
1 окт 15, 15:33 [18221326] Ответить | Цитировать Сообщить модератору |
guest45
Guest |
waszkiewicz, Функции CAST и CONVERT (Transact-SQL) SELECT CAST( -- это делает SQL Server CONVERT( -- это может делать Windows, зависит от настроек в Control Panel VARCHAR(100),CAST('2015-05-30' AS DATETIME),2 -- 2,3,3,5,11 ) AS DATETIME) Msg 242, Level 16, State 3, Line 3 The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value. |
1 окт 15, 16:14 [18221618] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
Действительно, Microsoft тупо формирует дату в формате, зависящим от разных настроек. Ну засовывали бы на место пробела букву T, - и всё было бы всегда нормально. Так нет же! |
||
1 окт 15, 17:19 [18222122] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
В TRY_PARSE можно напрямую указывать локаль. https://msdn.microsoft.com/en-us/library/hh213126.aspx |
1 окт 15, 18:05 [18222406] Ответить | Цитировать Сообщить модератору |
a_voronin Member Откуда: Москва Сообщений: 4807 |
a_voronin,-- different countries use different date formats -- Parsing d-m-y select TRY_PARSE('08-14-1969' AS datetime USING 'en-US') -- RETURNS 1969-08-14 00:00:00.000 select TRY_PARSE('14-08-1969' AS datetime USING 'en-US') -- RETURNS NULL -- Parsing m-d-y select TRY_PARSE('08-14-1969' AS datetime USING 'en-NZ') -- RETURNS NULL select TRY_PARSE('14-08-1969' AS datetime USING 'en-NZ') -- RETURNS 1969-08-14 00:00:00.000 |
1 окт 15, 18:06 [18222415] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47047 |
А запрос-то действительно драйвер ADO формирует. И криво, по всей видимости. Предлагаете везде вот такой вот винегрет городить? |
||
1 окт 15, 19:32 [18222848] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |