Конференция "Базы" » MS SQL 2000 и MySQL - результат разный? [D7, MSSQL, MySQL]
 
  • Раиса © (23.09.10 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 © (23.09.10 11:20) [1]

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

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

  • sniknik © (23.09.10 12:41) [2]
    в MSSQL если операнды целочисленные то и операция(результат) такой же

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

  • sniknik © (23.09.10 12:49) [3]
    хотя нет, округления тут не при чем (в данном в примере варианте)
  • Раиса © (23.09.10 13:40) [4]
    в MSSQL если операнды целочисленные то и операция(результат) такой же. Я не знала, что в MySQL это не так. Написала в MySQL с функцией округления floor. Хотя это мне совсем не нравится.

    Спасибо за ответ.
 
Конференция "Базы" » MS SQL 2000 и MySQL - результат разный? [D7, MSSQL, MySQL]
Есть новые Нет новых   [134432   +18][b:0][p:0.001]