|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Есть такой запрос Код: sql 1. 2. 3. 4. 5.
Ожидаю результат NCAST10.120020.123030.1234 Но получаю NCAST10.123420.123430.1234 Каждый запрос по отдельности кастит правильно, но вместе... Я ранее всегда пользовался CAST вместо ROUND. Теперь видимо буду переделывать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 18:15 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Забыл добавить Такое поведение повторятся на fb 3.0.2 и 2.5.8 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 18:18 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
диалект какой? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 18:28 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Вот так не пробовали ? select 1, cast(0.1234 as numeric(18,2))+0.00 from rdb$database union all select 2, cast(0.1234 as numeric(18,3))+0.00 from rdb$database union all select 3, cast(0.1234 as numeric(18,4))+0.00 from rdb$database ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 18:36 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Мимопроходящий, Диалект 3 AltHasp, Так работает. Но мне round проще поставить Кроме того cast(0.1234 as int ) дает тот же результат Код: sql 1. 2. 3.
NCAST10.123430.1234 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 18:45 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Шавлюк Евгений, по идее, сервер должен был бы материться на несоответствие типов у разных частей union. а так - приводится к максимальному типу. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 20:33 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
kdv, Проблема не в приведении к максимальному типу, а в том что нет округления при приведении 0.1234 к типу с меньшей точностью Такой запрос отрабатывает правильно Код: sql 1. 2. 3.
А такой нет Код: sql 1. 2. 3.
Разница только в "+ 0" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 20:38 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Шавлюк ЕвгенийМимопроходящий, Диалект 3 AltHasp, Так работает. Но мне round проще поставить Кроме того cast(0.1234 as int ) дает тот же результат Код: sql 1. 2. 3.
NCAST10.123430.1234 Ни в какие ворота, имхо. Глюк. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 21:08 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
чччД> Ни в какие ворота, имхо. Глюк. Не приведение типа - это баг, а не глюк (в 2.5 то же самое). А вот молчаливый каст к максимальному типу - скорее всего, не глюк, а корректное поведение, но нужно в стандарт глянуть. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 21:36 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Молчаливое приведение к максимальному типу - это нормально и правильно. Баг состоит в том, что в процессе приведения к общему типу игнорируется промежуточное приведение ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 21:48 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Угу, и я о том же. Собсно, там Numeric и сами типы неважны - понятно, что ты на нём споткнулся, но то же самое будет хоть с int-ом, хоть с float-ами, хоть даже со строкой и БЛОБами - всегда будет тупо подставляться максимальный тип вместо всех остальных с их игнорированием (AFAIU). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.01.2018, 22:15 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам... А вот молчаливый каст к максимальному типу - скорее всего, не глюк, а корректное поведение, но нужно в стандарт глянуть. Да пусть сервер кастует, на здоровье. Но после того, как выполнит явно заданный каст. Тип-то numeric, не decimal, значит, точность должна быть именно той, которую указали, а не "как минимум"... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 00:19 |
|
Странное поведение CAST
|
|||
---|---|---|---|
#18+
Шавлюк ЕвгенийМолчаливое приведение к максимальному типу - это нормально и правильно. Баг состоит в том, что в процессе приведения к общему типу игнорируется промежуточное приведениеМне пока что тоже так кажется. Детально не проверял. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2018, 00:41 |
|
|
start [/forum/topic.php?fid=40&fpage=37&tid=1561275]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 304ms |
total: | 428ms |
0 / 0 |