Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
Есть таблица, которая содержит три столбца: SHEETCOUNT, LENGTH, WIDTH (кол-во листов, длина, ширина соотв.), тип данных в столбцах INTEGER. Требуется найти площадь, которая считается по формуле: SELECT BIGINT(SHEETCOUNT) * BIGINT(LENGTH) * BIGINT(WIDTH) AS S FROM ... Все бы хорошо, но отобразить площадь надо в метрах квадратных, т.е. разделить на 10000. Делаю это так: SELECT DOUBLE(BIGINT(SHEETCOUNT) * BIGINT(LENGTH) * BIGINT(WIDTH)) /10000 AS S FROM ... При этом у меня остается только одни знак из всего числа :( т.е. если подставить например такие числа DOUBLE(BIGINT(78) * BIGINT(2500) * BIGINT(1600)) /10000 то результат равен 3, а не 31200,0000. Может кто просвятить насчет преобразования типов в DB2? Хоть ссылку какую-нибудь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:33 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
Это что, в командном процессоре Код: plaintext Не может быть! Версия базы и фикспак? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:49 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
Если просто выполнить запрос: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:51 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
Полный набор скриптов. Запускаю из Quest Central for DB2 v4.9: CREATE TABLE OBJ.SQUARE ( SHEETCOUNT INTEGER, LENGTH INTEGER, WIDTH INTEGER ); INSERT INTO OBJ.SQUARE (SHEETCOUNT, LENGTH, WIDTH) VALUES (78, 2500,1600); SELECT DOUBLE(BIGINT(SHEETCOUNT) * BIGINT(LENGTH) * BIGINT(WIDTH)) /10000 AS S FROM OBJ.SQUARE; Результат последнего селекта: 3 Версия DB2: v9.1.0.356 без FixPack ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:19 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
Alexey PopovЕсли просто выполнить запрос: Код: plaintext Результат тоже равен 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:20 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
vofchik Полный набор скриптов. Запускаю из Quest Central for DB2 v4.9: Не надо из QC пока. А из clp (командного процессора) DB2 если запустить? На моей v9.1.2 (fixpack 2) все нормально работает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:31 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
авторЗапускаю из Quest Central for DB2 v4.9 Вот это и есть причина! QC некорректно выводит FLOAT/DOUBLE поля. Выполни из db2clp или db2 control center И, насколько я помню, DB2 при умножении целых сама должна расширять тип, поэтому лишние преобразования проводить не нужно, это только понижает производительность, т.е. должно работать вот так Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:32 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
Ура!!! Проблема действительно в Quest Central, при запуске запроса из коммандного процессора все работает. Спасибо всем кто окликнулся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:45 |
|
||
|
DB2 и преобразование типов
|
|||
|---|---|---|---|
|
#18+
Евгений ХабаровИ, насколько я помню, DB2 при умножении целых сама должна расширять тип, поэтому лишние преобразования проводить не нужно, это только понижает производительность, т.е. должно работать вот так Код: plaintext Для общего случая автор делает правильно: 1. values bigint(100000)*100000*100000 не отработает, если убрать bigint (переполнение) 2. Целочисленное деление отрезает дробную часть (тип частного от int/int = int). Сравните values 10/3 и values double(10)/3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 18:00 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34644767&tid=1604464]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 339ms |

| 0 / 0 |
