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

Откуда:
Сообщений: 3
Доброго времени суток.

Подскажите, пожалуйста, в чем разница двух запросов?

Один исполняется с ошибкой, другой нет.

SELECT
T1._Fld1307,
T1._Document121_IDRRef,
T1._Fld9857RRef,
T2._Fld1299RRef
FROM _Document121_VT1303 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document121 T2 WITH(NOLOCK)
ON T1._Document121_IDRRef = T2._IDRRef
WHERE 
(NOT 
T1._Fld1307 = CAST('1753-01-01 00:00:00' as datetime))
AND 
(DATEADD(DAY,-1,T1._Fld1307) >= CAST('2015-01-01 00:00:00' as datetime)
AND 
DATEADD(DAY,-1,T1._Fld1307) <= CAST('2015-12-31 00:00:00' as datetime))

exec sp_executesql N'SELECT
T1._Fld1307,
T1._Document121_IDRRef,
T1._Fld9857RRef,
T2._Fld1299RRef
FROM _Document121_VT1303 T1 WITH(NOLOCK)
LEFT OUTER JOIN _Document121 T2 WITH(NOLOCK)
ON T1._Document121_IDRRef = T2._IDRRef
WHERE ((DATEADD(DAY,-(@P1),T1._Fld1307) >= @P2) AND (DATEADD(DAY,-(@P1),T1._Fld1307) <= @P3)) AND (NOT (((T1._Fld1307 = @P4))))
ORDER BY (T1._Fld1307)', N'@P1 numeric(1,0),@P2 datetime,@P3 datetime,@P4 datetime', 1, {ts '2015-01-01 00:00:00'}, {ts '2015-12-31 00:00:00'}, {ts '1753-01-01 00:00:00'}
23 мар 15, 20:11    [17421676]     Ответить | Цитировать Сообщить модератору
 Re: В чем разница двух запросов?....  [new]
a_voronin
Member

Откуда: Москва
Сообщений: 4813
Осталось понять какой даёт ошибку и какую. А вообще в приличном обществе с помощью _Fld9857RRef не выражаются. Но это ж 1С, попутал вас с ним его бес.
23 мар 15, 20:16    [17421694]     Ответить | Цитировать Сообщить модератору
 Re: В чем разница двух запросов?....  [new]
leov
Member

Откуда: С-Петербург
Сообщений: 616
PMick,

вы предлагаете угадать какая там получается ошибка?
23 мар 15, 20:16    [17421698]     Ответить | Цитировать Сообщить модератору
 Re: В чем разница двух запросов?....  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37198
PMick
Подскажите, пожалуйста, в чем разница двух запросов?

В буквах в тексте этих запросов.

PMick
Один исполняется с ошибкой, другой нет.

Текст ошибки надо угадать?
23 мар 15, 20:17    [17421699]     Ответить | Цитировать Сообщить модератору
 Re: В чем разница двух запросов?....  [new]
invm
Member

Откуда: Москва
Сообщений: 9683
PMick
Подскажите, пожалуйста, в чем разница двух запросов?
Очевидно в этом:
set language russian;
go

select {ts '2015-12-31 00:00:00'};
go

select cast('2015-12-31 00:00:00' as datetime);
go
23 мар 15, 20:21    [17421714]     Ответить | Цитировать Сообщить модератору
 Re: В чем разница двух запросов?....  [new]
PMick
Member

Откуда:
Сообщений: 3
Все гораздо проще:

Microsoft SQL Server Native Client 10.0: Добавление значения в столбец "datetime" привело к переполнению.
HRESULT=80040E07, SQLSrvr: SQLSTATE=22007, state=1, Severity=10, native=517, line=1

Ошибку не выдает запрос через sp_executesql.
23 мар 15, 20:27    [17421728]     Ответить | Цитировать Сообщить модератору
 Re: В чем разница двух запросов?....  [new]
PMick
Member

Откуда:
Сообщений: 3
invm, Вы совершенно правы, спасибо
23 мар 15, 20:46    [17421771]     Ответить | Цитировать Сообщить модератору
 Re: В чем разница двух запросов?....  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8485
PMick, даты криво написаны, пишите без палочек. В этом случае преобразование не зависит от языка сессии.
24 мар 15, 11:09    [17423399]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить