Номер плюс строка в MySQL

Выражение

SELECT (6000.03 + '00') AS res;

дает результат6000.03, но выражение

SELECT (6000.00 + '00') AS res;

дает результат 6000. Почему во втором выражении отбрасывается дробная часть?

1 ответ

  1. Нельзя добавить строку в число без изменения типа данных.
    MySQL автоматически преобразует ‘ 00 ‘ в число, так как у вас нет явного определения даты в вашем select.

    Он отбросит дробную часть во втором примере как 6000.00 = 6000 = целое значение.

    Если вы делаете эту манипуляцию в столбце таблиц, который определен как decimal, дробная часть не будет отброшена, поскольку MySQL не переопределит ваши определения столбца.