Странное поведение при конвертации в Amazon Redshift - PullRequest
0 голосов
/ 06 ноября 2018

Вот минимальный пример некоторого странного поведения, которое я наблюдаю с Amazon Redshift. Оба эти запроса

select 0.010691::DECIMAL(20,4);
select ('0.010691'::varchar(255))::DECIMAL(20,4);

возврат 0.0107, чего я и ожидал. Но

create table test (
  "val" varchar(255)
);
insert into test values ('0.010691');
select val::DECIMAL(20, 4) from test;

возвращает 0.0106, т. Е. Обрезается перед преобразованием, а не преобразованием, а затем округляется. Это ожидаемое поведение? Почему они разные?

1 Ответ

0 голосов
/ 06 ноября 2018

Судя по всему, это ожидаемое поведение. На этой странице документации есть строка "Однако результаты явного приведения значений, выбранных из таблиц, не округляются". Так что фича, а не ошибка.

...