|
Работа с Interval
|
|||
---|---|---|---|
#18+
Добрый день. Вопрос : При вычитании 2 DATETIME я получаю INTERVAL типа DAY TO SECOND. Например: 413 00:28:47.000 Соответственно, как отсюда можно получить количество месяцев. Заранее спасибо, и прошу не перекидывать меня на http://www.sql.ru/faq/faq_topic.aspx?fid=534 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:18 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
И еще сразу вопросик - что значит FRACTION ? YEAR TO DAY - понятно DAY TO SECOND - понятно а YEAR TO FRACTION - это как понимать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:24 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
wuwei12Добрый день. Вопрос : При вычитании 2 DATETIME я получаю INTERVAL типа DAY TO SECOND. Например: 413 00:28:47.000 Соответственно, как отсюда можно получить количество месяцев. Заранее спасибо, и прошу не перекидывать меня на http://www.sql.ru/faq/faq_topic.aspx?fid=534 Вы зашли в середину болота и спрашиваете как оттуда выйти. А не надо было заходить в болото. Ваш вопрос надо задать например так: "как вычислить целое количество месяцев между двумя датами." Кстати в у поминаемой вами ссылке наверняка есть ответ. Читайте "Число полных лет" ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:30 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
wuwei12И еще сразу вопросик - что значит FRACTION ? YEAR TO DAY - понятно DAY TO SECOND - понятно а YEAR TO FRACTION - это как понимать ?Доля секунды. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:31 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:36 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
Ребята спасибо за оперативную помощь. Я всё понимаю, IBM Informix Guide to SQL: Reference - уже скоро неделю как курю его. С фракшином прояснили. Для месяца написал extend(today, year to month) - date('19.09.2009') Получил интервал годы-месяцы, как теперь из него общее число месяцев то забрать ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:50 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
wuwei12 При вычитании 2 DATETIME я получаю INTERVAL типа DAY TO SECOND. Например: 413 00:28:47.000 Соответственно, как отсюда можно получить количество месяцев. Если вспомнить, что месяцы бывают разные (с разным количеством дней) да еще и февраль зависит от высокосного года, то ваш вопрос становится довольно абстрактным. Какие месяцы вы хотите получить - тоже абстрактные ? По 30,417 дня ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:51 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
Хотелось бы получить реальные месяцы, (YEAR(current) - YEAR('6.06.2009'))*12 + MONTH(current) - MONTH('6.06.2009') Написал вот так, но тут не учитываются дни совершенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:55 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
wuwei12Получил интервал годы-месяцы, как теперь из него общее число месяцев то забрать ???А дошло. Вы алгоритм для вычисления числа полных лет(месяцев) понять не можете: 15.01-16.02 вычисляем 15>16 = true then 2-1= 1месяц 17.06-15.09 вычисляем 17>15 = false then 9-6 - 1= 2месяца ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 11:58 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
Ох спасибо Денис, прояснили. Во что получилось: 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}) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 12:13 |
|
Работа с Interval
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2010, 13:52 |
|
|
start [/forum/topic.php?fid=44&msg=36660914&tid=1607567]: |
0ms |
get settings: |
14ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 331ms |
total: | 469ms |
0 / 0 |