powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / Работа с Interval
11 сообщений из 11, страница 1 из 1
Работа с Interval
    #36660793
wuwei12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Вопрос :
При вычитании 2 DATETIME я получаю INTERVAL типа DAY TO SECOND.
Например:
413 00:28:47.000
Соответственно, как отсюда можно получить количество месяцев.
Заранее спасибо, и прошу не перекидывать меня на
http://www.sql.ru/faq/faq_topic.aspx?fid=534
...
Рейтинг: 0 / 0
Работа с Interval
    #36660818
wuwei12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще сразу вопросик - что значит FRACTION ?
YEAR TO DAY - понятно
DAY TO SECOND - понятно
а YEAR TO FRACTION - это как понимать ?
...
Рейтинг: 0 / 0
Работа с Interval
    #36660834
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wuwei12Добрый день.
Вопрос :
При вычитании 2 DATETIME я получаю INTERVAL типа DAY TO SECOND.
Например:
413 00:28:47.000
Соответственно, как отсюда можно получить количество месяцев.
Заранее спасибо, и прошу не перекидывать меня на
http://www.sql.ru/faq/faq_topic.aspx?fid=534
Вы зашли в середину болота и спрашиваете как оттуда выйти. А не надо было заходить в болото.

Ваш вопрос надо задать например так: "как вычислить целое количество месяцев между двумя датами." Кстати в у поминаемой вами ссылке наверняка есть ответ. Читайте "Число полных лет"
...
Рейтинг: 0 / 0
Работа с Interval
    #36660840
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wuwei12И еще сразу вопросик - что значит FRACTION ?
YEAR TO DAY - понятно
DAY TO SECOND - понятно
а YEAR TO FRACTION - это как понимать ?Доля секунды.
...
Рейтинг: 0 / 0
Работа с Interval
    #36660848
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wuwei12,

IBM Informix Guide to SQL: Reference

The INTERVAL data type stores a value that represents a span of time. INTERVAL
types are divided into two classes: year-month intervals and day-time intervals. A
year-month interval can represent a span of years and months, and a day-time
interval can represent a span of days, hours, minutes, seconds, and fractions of a
second.
...
Рейтинг: 0 / 0
Работа с Interval
    #36660890
wuwei12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята спасибо за оперативную помощь.
Я всё понимаю, IBM Informix Guide to SQL: Reference - уже скоро неделю как курю его.
С фракшином прояснили.
Для месяца написал
extend(today, year to month) - date('19.09.2009')
Получил интервал годы-месяцы, как теперь из него общее число месяцев то забрать ???
...
Рейтинг: 0 / 0
Работа с Interval
    #36660894
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wuwei12
При вычитании 2 DATETIME я получаю INTERVAL типа DAY TO SECOND.
Например:
413 00:28:47.000
Соответственно, как отсюда можно получить количество месяцев.

Если вспомнить, что месяцы бывают разные (с разным количеством дней) да еще и февраль зависит от высокосного года, то ваш вопрос становится довольно абстрактным.
Какие месяцы вы хотите получить - тоже абстрактные ? По 30,417 дня ?
...
Рейтинг: 0 / 0
Работа с Interval
    #36660914
wuwei12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотелось бы получить реальные месяцы,
(YEAR(current) - YEAR('6.06.2009'))*12 + MONTH(current) - MONTH('6.06.2009')
Написал вот так, но тут не учитываются дни совершенно.
...
Рейтинг: 0 / 0
Работа с Interval
    #36660926
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wuwei12Получил интервал годы-месяцы, как теперь из него общее число месяцев то забрать ???А дошло. Вы алгоритм для вычисления числа полных лет(месяцев) понять не можете:
15.01-16.02 вычисляем 15>16 = true then 2-1= 1месяц
17.06-15.09 вычисляем 17>15 = false then 9-6 - 1= 2месяца
...
Рейтинг: 0 / 0
Работа с Interval
    #36660984
wuwei12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ох спасибо Денис, прояснили.
Во что получилось:
Select
CASE
WHEN DAY(current) >= DAY('2.06.2009')
THEN (YEAR(current) - YEAR('2.06.2009'))*12 + MONTH(current) - MONTH('2.06.2009')
ELSE
(YEAR(current) - YEAR('2.06.2009'))*12 + MONTH(current) - MONTH('2.06.2009') - 1
END
From table(set{1})
...
Рейтинг: 0 / 0
Работа с Interval
    #36661269
Фотография Тан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wuwei12Ребята спасибо за оперативную помощь.
Я всё понимаю, IBM Informix Guide to SQL: Reference - уже скоро неделю как курю его.
С фракшином прояснили.
Для месяца написал
extend(today, year to month) - date('19.09.2009')
Получил интервал годы-месяцы, как теперь из него общее число месяцев то забрать ???
(extend(today, year to month) - date('19.09.2009'))::interval month to month
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / Работа с Interval
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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