Я получил поле varchar, скажем, значение 174, но когда я cast(field as decimal(3,1))
, он всегда мне 99,9? Как я могу преобразовать его в 17.4? Или я должен изменить на исходном уровне вход для ввода в десятичном виде?Mysql cast to decimal дать 99.9
0
A
ответ
3
Это потому, что 174
не может быть выражен с 2 цифрами до и 1 цифрой после десятичной точки. decimal(3,1)
означает «3 цифры в общей сложности и 1 (из 3) после десятичной точки
mysql> select cast('174' as decimal(3,1));
+-----------------------------+
| cast('174' as decimal(3,1)) |
+-----------------------------+
| 99.9 |
+-----------------------------+
1 row in set, 1 warning (0.00 sec)
Это дает предупреждение, что можно показать с:.
mysql> show warnings;
+---------+------+----------------------------------------------------------------------+
| Level | Code | Message |
+---------+------+----------------------------------------------------------------------+
| Warning | 1264 | Out of range value for column 'cast('174' as decimal(3,1))' at row 1 |
+---------+------+----------------------------------------------------------------------+
1 row in set (0.00 sec)
Разделить число на 10 и попробовать снова:
mysql> select cast('174'/10 as decimal(3,1));
+--------------------------------+
| cast('174'/10 as decimal(3,1)) |
+--------------------------------+
| 17.4 |
+--------------------------------+
1 row in set (0.00 sec)
Смежные вопросы
- 1. Varchar to Decimal cast возвращает '0'
- 2. MYSQL CAST AS DECIMAL для поля VARCHAR
- 3. Mysql decimal (10,9) stop to 9.999999999
- 4. MySQL: изменение столбца Boolean в столбце Decimal и данные Cast()
- 5. SQL change decimal (9,3) to decimal (9,2)
- 6. IQueryable <decimal> to decimal
- 7. MySQL Cast NULL to integer 0
- 8. CAST unsigned to signed int in MySql
- 9. MySQL Insert Cast
- 10. подсчет -99.9 in r
- 11. decimal to binary converter
- 12. Recursion Binary to Decimal
- 13. Regex decimal to int
- 14. C++ Binary to Decimal
- 15. IEEE 754 to decimal
- 16. Python: Decimal to Binary
- 17. Decimal to Binary C++
- 18. Hex to Decimal - Swift
- 19. Javascript decimal to hexadecimal
- 20. C++ decimal to binary
- 21. Python Decimal to String
- 22. Roman Numeral To Decimal
- 23. Binary to Decimal - java
- 24. Decimal to Binary Java
- 25. Parse Binary to Decimal
- 26. RGB to Decimal vb.net
- 27. Decimal to JSON
- 28. Python2.6 Decimal to Octal
- 29. C# Regex.Match to decimal
- 30. SQL DECIMAL to Java Number
так что если у меня есть поле как целое, я могу сделать то же самое разделить мои 10 затем бросить это правильно – user5313398
Да ' «174»/10' неявно отбрасывает VARCHAR к междунар – PerlDuck
?.. Нет, что я имел в виду, если поле является целым числом, например. 174 затем разделить на 10 - это тот же самый ответ? – user5313398