-
Приветствую!
У меня есть две таблицы с одинаковым набором полей. Но в первой таблице в поле Р хранятся целые числа, а во второй плавающие с 2 разрядами после запятой. При объединении этих таблиц оператором UNION возникает ошибка о несоответствии типов. В частности, 0 по версии sql это не флоат. Сходу я решил эту проблему добавлением к целым числам 0.00 - это уже флоат.
Но получил другой баг - на машинах, где в качестве разделителя целой и дробной части стоит знак "," такой трюк не проходит.
Подскажите корректное решение проблемы?
С уважением, Юрий.
-
> yurikon (07.02.2012 15:40:00) [0]
Это ты про запросы чтоли, так они должны делаться в системнонезависимом формате, то есть только с точкой.
-
Все верно, Анатолий, про запросы.
То есть, во тексте запроса - точка - это всегда разделитель для сервера?
-
если посмотреть чем всегда является запятая, то про точку вопроса не возникнет
-
> yurikon (07.02.2012 16:00:02) [2]
Именно так, для чисел всегда точка, запятая разделение элементов списка 3.5, 4.5 против 3,5,4,5
-
CAST(0 AS FLOAT) ?
-
Знайка, спасибо! так и сделал.
-
Решил проблему. Ошибка ко всему прочему вылетала в запросах, собираемых "налету" и содержащим числовые значения флоат. Пришлось вручную заменять запятую на точку для запроса. Может быть в скуле есть универсальный конвертор таких вещей?
PS Кроме параметров.
-
Тогда пробуем преобразовать 3,5,4,5 --> 3.5.4.5
-
А параметры использовать? или что значит "собираемых "налету" " ?
-
> знайка (08.02.2012 15:34:09) [9]
Настоящие пацаны не ищут легких путей. Нормальные герои всегда идут в обход.
-
Герой пришел :-). Топик можно закрывать. Спасибо за советы!
|