Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / [Informix 7.31 TC2] Преобразование типов / 6 сообщений из 6, страница 1 из 1
24.10.2002, 12:32
    #32061498
Roman Pankov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Informix 7.31 TC2] Преобразование типов
Всем привет...

Подскажите, пожалуйста, как в Informix делается преобразование типов. Есть ли аналоги MSSQL'ным cast, convert? В частности, как мне получить, например, остаток или целую часть от деления целого на целое? Спасибо.
...
Рейтинг: 0 / 0
25.10.2002, 18:54
    #32062065
Roman Pankov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Informix 7.31 TC2] Преобразование типов
Задача решилась с помощью функции round . Если кому интересно, то вот, например, остаток:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create procedure MOD (
  A integer,  -- делимое
 
  B integer)  -- делитель
 
returning
  integer;

  return A - round(A / B) * B;

end procedure;  -- MOD
 


Все оказалось гораздо проще, чем я ожидал... ;) Но все равно - всем спасибо... ;)))

PS: А вопрос о преобразовании типов остается в силе...
...
Рейтинг: 0 / 0
15.01.2003, 17:54
    #32091367
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Informix 7.31 TC2] Преобразование типов
В Информиксе очень сильно распространено НЕЯВНОЕ преобразование типов. С одной стороны это значительно облегчает программирование, но иногда (в нестандартных ситуациях) сильно и осложняет.
Для стандартных преобразований (типа даты в строку) есть набор функций.
cast есть, но не в этой версии сервера (начиная с 9.1х+).
Иногда для получения нужного типа приходится делать финты типа A+0 или писать небольшие процедурки-функции типа той, что ты написал.
...
Рейтинг: 0 / 0
17.01.2003, 12:51
    #32092453
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Informix 7.31 TC2] Преобразование типов
О!
Такой вопрос - нужно преобразовать дату, которая хранится в текстовом поле (char (17)), в дату как таковую. В текстовом поле формат такой - 4 символа год, 2 - месяц, 2 - число, 2 - час, 2 - минута, 2 - секунда, 3 - миллисекунды.

7.23
...
Рейтинг: 0 / 0
17.01.2003, 15:59
    #32092623
Daugava
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Informix 7.31 TC2] Преобразование типов
Ну если дата как таковая, то: mdy(поле[5,6],поле[7,8],поле[1,4])
Если же имелся ввиду datetime, то несколько сложнее:

CREATE PROCEDURE "informix".dt_to_dt(aDate CHAR(17)) RETURNING DATETIME YEAR TO fraction(3);
RETURN aDate[1,4] || '-' || aDate[5,6] || '-' || aDate[7,8] || ' ' ||
aDate[9,10]|| ':' || aDate[11,12] || ':' || aDate[13,14] || '.' || aDate[15,17];
END PROCEDURE
...
Рейтинг: 0 / 0
17.01.2003, 16:05
    #32092627
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[Informix 7.31 TC2] Преобразование типов
Спасибо.
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / [Informix 7.31 TC2] Преобразование типов / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]