2017-01-08 14 views
1

Я пытаюсь запустить ниже заявление в Sybase 15.5, но я получаю «Арифметика переполнение произошло» ошибка:Арифметика переполнение произошло

declare @TradeId BIGINT 
select @TradeId=(20170103-19950000)*10000 
select @TradeId 

Пожалуйста проконсультировать все, что я делаю неправильно.

ответ

0

Тип данных констант в выражении определяется их значением. Поскольку все предикаты кажутся просто INT, DBE использует INT для их хранения.

Вставить одно или все из них в BIGINT явно.

0

Предполагается, что 19950000 является INT, поэтому вы получаете сообщение об ошибке. Явно передайте его в BIGINT следующим образом:

declare @TradeId BIGINT 
select @TradeId=(20170103-CAST(19950000 AS BIGINT))*10000 
select @TradeId