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

Откуда: Норильск
Сообщений: 932
Есть запрос:

declare @t numeric(8,2)
set @t=((2010-1969))/10
select @t

но почему он возвращает целое число?
13 ноя 09, 11:44    [7924769]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
А таг?
declare @t numeric(8,2)
set @t=((2010-1969))/10.
select @t
13 ноя 09, 11:48    [7924810]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
programmator
Member

Откуда: ru
Сообщений: 355
или так? :)
declare @t numeric(8,2)
set @t=(2010.00-1969.00)/10
select @t
13 ноя 09, 11:49    [7924824]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
Настенька
Member

Откуда: Норильск
Сообщений: 932
Как интересно, все работает. а если не объявлять как numeric, то как правильно написать?
13 ноя 09, 11:54    [7924866]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
Настенька
Как интересно, все работает. а если не объявлять как numeric, то как правильно написать?

дак а вам чего нужно то?
13 ноя 09, 11:54    [7924870]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Настенька
Как интересно, все работает. а если не объявлять как numeric, то как правильно написать?
Надо прочитать вот это: Приоритет типов данных (Transact-SQL)
и вот это: Приоритет операторов (Transact-SQL)
13 ноя 09, 11:57    [7924899]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
Ю2008
Guest
iap
Настенька
Как интересно, все работает. а если не объявлять как numeric, то как правильно написать?
Надо прочитать вот это: Приоритет типов данных (Transact-SQL)
и вот это: Приоритет операторов (Transact-SQL)


И вот это: / (деление) (Transact-SQL)


"Если целочисленный аргумент dividend делится на целочисленный аргумент divisor, то результатом будет целое число, а дробная часть будет усечена."
13 ноя 09, 12:03    [7924968]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
Glory
Member

Откуда:
Сообщений: 104760
Настенька
Как интересно, все работает. а если не объявлять как numeric, то как правильно написать?

Дело в том, что тип переменной, куда будет записан результат, никак не влияет на типы аргументов, которые вы используете в вычислених. Так что следите именно за типами аргументов
13 ноя 09, 12:20    [7925120]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Ю2008
iap
Настенька
Как интересно, все работает. а если не объявлять как numeric, то как правильно написать?
Надо прочитать вот это: Приоритет типов данных (Transact-SQL)
и вот это: Приоритет операторов (Transact-SQL)


И вот это: / (деление) (Transact-SQL)


"Если целочисленный аргумент dividend делится на целочисленный аргумент divisor, то результатом будет целое число, а дробная часть будет усечена."
Приоритет типов данных (Transact-SQL)
Если оба операнда выражения имеют одинаковый тип данных, результат операции будет иметь тот же тип данных.
Разве это не о том же самом, но другими словами?
13 ноя 09, 12:32    [7925231]     Ответить | Цитировать Сообщить модератору
 Re: Элементарный запрос  [new]
Ю2008
Guest
Ю2008
"Если целочисленный аргумент dividend делится на целочисленный аргумент divisor, то результатом будет целое число, а дробная часть будет усечена."

iap
Приоритет типов данных (Transact-SQL)
Если оба операнда выражения имеют одинаковый тип данных, результат операции будет иметь тот же тип данных.
Разве это не о том же самом, но другими словами?

О том же самом. Но другими словами.
13 ноя 09, 12:53    [7925417]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить