powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / тип interval
13 сообщений из 13, страница 1 из 1
тип interval
    #32308912
Ivanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста нам,невозможно нигде найти информацию.
База Informix имеет тип данных Interval .Как нам выделить из него часы и минуты в sql-запросе или в stored-процедуре? При создании поля мы задали
диапазон Hour to minute.

Заранее всем спасибо.
...
Рейтинг: 0 / 0
тип interval
    #32309258
ton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ton
Гость
В каком смысле "отделить"? Просто вывести как отдельные поля в запросе (для отображения) ? Записать в разные переменные? Иметь возможность в отдельно изменять минуты и часы?

Если первое, то:

Select field, field::interval hour to hour hu ,
( field -field::interval hour to hour)::interval minute to minute min
From table1

Если второе, то:
Определив переменные (Hour, Min) соответствущих типов в DEFINE, выполнить тот же запрос:

Select field, field::interval hour to hour ,
( field -field::interval hour to hour)::interval minute to minute
into Hour, Min
From table1

Если хочется в процедуре выполнить какие-то операции с этими переменными, в действиях пользоваться таким понятием, как units :

если требуется прибавить, вычесть некоторое количество минут из Min

Min- 5 units minute
...
Рейтинг: 0 / 0
тип interval
    #32309429
Ivanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ton,спасибо за ответ,но конструкция ::interval выдает синтаксическую
ошибку.Т.е получить отдельно часы и минуты из поля типа interval в запросе нам пока не удается.Наш запрос по твоей подсказке выглядит так:

select dlit_povr,dlit_povr::interval hour to hour dlit from povr_cab

dlit_povr как раз то самое поле типа interval
Что мы делаем не так?
...
Рейтинг: 0 / 0
тип interval
    #32309573
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все это из-за того, что кто-то не указал с какой версией сервера он имеет дело. Судя по всему, речь идет о 7-ке, а не о 9-ке, по этому "::interval" и не работает.

Итак:

select dlit_povr,Extend(dlit_povr, hour to hour) dlit from povr_cab
...
Рейтинг: 0 / 0
тип interval
    #32309809
ton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ton
Гость
>Daugava Боюсь, что эта функция поле типа interval не обработает. Она только datetime понимает.

>Ivanna А какая, действительно, версия Информикс-сервера у вас?
...
Рейтинг: 0 / 0
тип interval
    #32309998
Ivanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята,спасибо вам всем за сострадание.Мы уже замучились с этим
полем interval.Вроде должно быть так просто и не получается.
Informix у нас действительно 7-й версии.Прочитали мы про extend вот здесь : http://www.citforum.ru/database/informix/h4fu.shtml
Ton прав,она используется для полей datetime.Запрос с units тоже не дает
положительного результата.
...
Рейтинг: 0 / 0
тип interval
    #32310029
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>Daugava Боюсь, что эта функция поле типа interval не обработает. Она только datetime понимает.
ton, не надо боятся надо проверить :-). Я перед тем как писать проверил на 9-ке. Живой 7-ки у меня под рукой нет, но энциклопедий юных сурков от разных версий у меня предостаточно. Описание EXTEND в версиях 7.3 и 9.2 практически идентичны, она предназначен для datetime и date. Учитывая, что у информикса сплошь и рядом имеет место быть неявное приведение типов, она вполне подходит и для interval.
...
Рейтинг: 0 / 0
тип interval
    #32310118
ton1404
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Daugava Боязнь основывалась как раз на опыте . Было проверено (на 9.3 правда). К сожалению, информикс (9.3) у меня не допустил такого преобразования. Неужели у вас допустил ? Видимо, 9.2 было переходом (в ней уже появился оператор CAST(или ::) и ещё была возможность преобразования типа ). А в 9.3 от неё избавились за ненадобностью (раз появился ::). Или у нас различаются параметры настройки серверов.

> Ivanna
Дык у вас не отработал запрос
select dlit_povr,Extend(dlit_povr, hour to hour) dlit from povr_cab
?
...
Рейтинг: 0 / 0
тип interval
    #32310122
ton1404
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как вы уже, навреное, поняли я - бывший ton. :-)
...
Рейтинг: 0 / 0
тип interval
    #32310146
Ivanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос
select dlit_povr,Extend(dlit_povr, hour to hour) dlit from povr_cab
не отработал
Ошибка:
It is not possible to convert between the specified types

При создании базы поле interval было создано с ограничением
hour(3) to minute
Точная версия informix-сервера 7.31 C4
...
Рейтинг: 0 / 0
тип interval
    #32310225
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда, я поленился :-(
При обращении к пустой таблице ошибки нет. Если вставить какие-нибудь данные,
"It is not possible to convert between the specified types ".

В 7-ке уже есть функция SUBSTR(), так что можно вырезать часы и минуты просто из строки.
create table "informix".test
(
a interval hour(3) to minute
);
insert into test values (interval(723:32) hour(3) to minute);
insert into test values (interval(3:32) hour(3) to minute);
select substr(a,1,4) HOUR
from test;
...
Рейтинг: 0 / 0
тип interval
    #32310261
Ivanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Daugava,огромное Вам спасибо!Спасибо Ton-у!За помощь всем сапасибо.
Отдельное спасибо этому форуму !
Вариант Daugava c использованием substr нам подошел.
Желаем всем творческих успехов, да и себе в том числе(жаль,что сами не догадались).
...
Рейтинг: 0 / 0
тип interval
    #32310389
ton1404
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>> Daugava
Оригинально !
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / тип interval
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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