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

Ваш вопрос надо задать например так: "как вычислить целое количество месяцев между двумя датами." Кстати в у поминаемой вами ссылке наверняка есть ответ. Читайте "Число полных лет"
...
Рейтинг: 0 / 0
01.06.2010, 11:31
    #36660840
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
wuwei12И еще сразу вопросик - что значит FRACTION ?
YEAR TO DAY - понятно
DAY TO SECOND - понятно
а YEAR TO FRACTION - это как понимать ?Доля секунды.
...
Рейтинг: 0 / 0
01.06.2010, 11:36
    #36660848
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
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
01.06.2010, 11:50
    #36660890
wuwei12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
Ребята спасибо за оперативную помощь.
Я всё понимаю, IBM Informix Guide to SQL: Reference - уже скоро неделю как курю его.
С фракшином прояснили.
Для месяца написал
extend(today, year to month) - date('19.09.2009')
Получил интервал годы-месяцы, как теперь из него общее число месяцев то забрать ???
...
Рейтинг: 0 / 0
01.06.2010, 11:51
    #36660894
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
wuwei12
При вычитании 2 DATETIME я получаю INTERVAL типа DAY TO SECOND.
Например:
413 00:28:47.000
Соответственно, как отсюда можно получить количество месяцев.

Если вспомнить, что месяцы бывают разные (с разным количеством дней) да еще и февраль зависит от высокосного года, то ваш вопрос становится довольно абстрактным.
Какие месяцы вы хотите получить - тоже абстрактные ? По 30,417 дня ?
...
Рейтинг: 0 / 0
01.06.2010, 11:55
    #36660914
wuwei12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
Хотелось бы получить реальные месяцы,
(YEAR(current) - YEAR('6.06.2009'))*12 + MONTH(current) - MONTH('6.06.2009')
Написал вот так, но тут не учитываются дни совершенно.
...
Рейтинг: 0 / 0
01.06.2010, 11:58
    #36660926
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
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
01.06.2010, 12:13
    #36660984
wuwei12
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
Ох спасибо Денис, прояснили.
Во что получилось:
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
01.06.2010, 13:52
    #36661269
Тан
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с Interval
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
Форумы / Informix [игнор отключен] [закрыт для гостей] / Работа с Interval / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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