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

Откуда:
Сообщений: 112
Для информации, наткнулся на такое:
при умножении bit = 1 на число 1 > abs(число) > 0 возникает ошибка
Arithmetic overflow error converting tinyint to data type numeric. Severity 16 State 8

select  convert(bit, 1)*18.0/100
go

select  convert(bit, 1)*(18.0/100.0 )
go
        
[color=red]select  convert(bit, 1)*0.18[/color]
go


Последний селект выдаёт
Arithmetic overflow error converting tinyint to data type numeric. Severity 16 State 8

Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)
Sep 21 2011 22:45:45
Copyright (c) 1988-2008 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)

PS: может уже патчик выпустили?
31 авг 12, 15:31    [13095748]     Ответить | Цитировать Сообщить модератору
 Re: bit. Arithmetic overflow  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
select  convert(bit, 1)*(0.18*1)
31 авг 12, 15:43    [13095838]     Ответить | Цитировать Сообщить модератору
 Re: bit. Arithmetic overflow  [new]
Knyazev Alexey
Member

Откуда: Екб -> Мск
Сообщений: 10234
Блог
Knyazev Alexey
select  convert(bit, 1)*(0.18*1)


лучше даже так, чтоб неявного преобразования не было вообще:

select convert( bit, 1 ) * convert( decimal(3,2), 0.18 )
31 авг 12, 15:49    [13095884]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить