powered by simpleCommunicator - 2.0.43     © 2025 Programmizd 02
Форумы / Informix [игнор отключен] [закрыт для гостей] / [Informix 7.31 TC2] Преобразование типов
6 сообщений из 6, страница 1 из 1
[Informix 7.31 TC2] Преобразование типов
    #32061498
Roman Pankov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет...

Подскажите, пожалуйста, как в Informix делается преобразование типов. Есть ли аналоги MSSQL'ным cast, convert? В частности, как мне получить, например, остаток или целую часть от деления целого на целое? Спасибо.
...
Рейтинг: 0 / 0
[Informix 7.31 TC2] Преобразование типов
    #32062065
Roman Pankov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача решилась с помощью функции 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
[Informix 7.31 TC2] Преобразование типов
    #32091367
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Информиксе очень сильно распространено НЕЯВНОЕ преобразование типов. С одной стороны это значительно облегчает программирование, но иногда (в нестандартных ситуациях) сильно и осложняет.
Для стандартных преобразований (типа даты в строку) есть набор функций.
cast есть, но не в этой версии сервера (начиная с 9.1х+).
Иногда для получения нужного типа приходится делать финты типа A+0 или писать небольшие процедурки-функции типа той, что ты написал.
...
Рейтинг: 0 / 0
[Informix 7.31 TC2] Преобразование типов
    #32092453
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О!
Такой вопрос - нужно преобразовать дату, которая хранится в текстовом поле (char (17)), в дату как таковую. В текстовом поле формат такой - 4 символа год, 2 - месяц, 2 - число, 2 - час, 2 - минута, 2 - секунда, 3 - миллисекунды.

7.23
...
Рейтинг: 0 / 0
[Informix 7.31 TC2] Преобразование типов
    #32092623
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну если дата как таковая, то: 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
[Informix 7.31 TC2] Преобразование типов
    #32092627
Фотография Scott Tiger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / [Informix 7.31 TC2] Преобразование типов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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