Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

MS SQL 2000 и MySQL - результат разный?   Найти похожие ветки 

 
Раиса ©   (2010-09-23 10:51) [0]

Пишем типа запрос в MS SQL 2000 и выполняем. Результат равен 1.

declare @a4 int,@a5 int;
set @a4=132;
set @a5=25;
select ((((@a4&255)*256)+(@a5&255))/16)&63;


Пишем типа запрос в MySQL и выполняем. Результат равен 2.

set @a4=132;
set @a5=25;
select ((((@a4&255)*256)+(@a5&255))/16)&63;


Где у меня ошибка? В MySQL результат неверный....скорее всего... Наверное, надо указать тип int......


 
Ega23 ©   (2010-09-23 11:20) [1]


> Где у меня ошибка?

Попробуй для MySQL
select Cast(((((@a4&255)*256)+(@a5&255))/16) as int)&63;


 
sniknik ©   (2010-09-23 12:41) [2]

в MSSQL если операнды целочисленные то и операция(результат) такой же

вот так проверь, что получается?
select Cast(((((@a4&255)*256.0)+(@a5&255))/16.0) as int)&63;


 
sniknik ©   (2010-09-23 12:49) [3]

хотя нет, округления тут не при чем (в данном в примере варианте)


 
Раиса ©   (2010-09-23 13:40) [4]

в MSSQL если операнды целочисленные то и операция(результат) такой же. Я не знала, что в MySQL это не так. Написала в MySQL с функцией округления floor. Хотя это мне совсем не нравится.

Спасибо за ответ.



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.239 c
15-1342251556
MastaK
2012-07-14 11:39
2013.03.22
Баг или не баг?


2-1331555750
Evgeniy
2012-03-12 16:35
2013.03.22
Сортировка "пузырьком"


15-1350977971
John Dillinger
2012-10-23 11:39
2013.03.22
горячие клавиши


2-1332757380
leklerk
2012-03-26 14:23
2013.03.22
Аналог ExecSQL для ADODataSet


15-1334583721
Андреевич
2012-04-16 17:42
2013.03.22
Узнать когда был выход из ждущего режима