powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / months_between ora-->postgres
7 сообщений из 7, страница 1 из 1
months_between ora-->postgres
    #38980878
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогите реализовать months_between на постгресе

дело в том что в ора она возвращает результат с плавающей точкой
нашел вариант для постгреса:
Код: sql
1.
select extract(year from age('2015-03-13', '2015-01-14'))*12 + extract(month from age('2015-03-13', '2015-01-14'))

но он вернет 1, в ора это будет 1,96774193548387

к сожалению результат ннадо как в ора-(
...
Рейтинг: 0 / 0
months_between ora-->postgres
    #38980885
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushkaпомогите реализовать months_between на постгресе

дело в том что в ора она возвращает результат с плавающей точкой
нашел вариант для постгреса:
Код: sql
1.
select extract(year from age('2015-03-13', '2015-01-14'))*12 + extract(month from age('2015-03-13', '2015-01-14'))

но он вернет 1, в ора это будет 1,96774193548387

к сожалению результат ннадо как в ора-(

А вот 3 месяца это сколько дней конкретно?
Ответите на этот вопрос - я вам подскажу как считать ;)

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
months_between ora-->postgres
    #38980891
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кажется в оракле берется из расчета как 31 день
...
Рейтинг: 0 / 0
months_between ora-->postgres
    #38980932
Фотография Maxim Boguk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushkaкажется в оракле берется из расчета как 31 день

ну вот и возьмите разницу в днях и поделите на 31::float

--
Maxim Boguk
www.postgresql-consulting.ru
...
Рейтинг: 0 / 0
months_between ora-->postgres
    #38980990
Фотография Legushka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maxim Boguk, спасибо

select extract(year from age('2015-03-15', '2015-01-16'))*12 + extract(month from age('2015-03-15', '2015-01-16'))+extract(day from age('2015-03-15', '2015-01-16'))/31
...
Рейтинг: 0 / 0
months_between ora-->postgres
    #38981021
p2.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
оракловые add_months, months_beteeen с интервальной арифметикой несовместимы - последний день месяца может быть разным числом, но разница дает целое число месяцев.
...
Рейтинг: 0 / 0
months_between ora-->postgres
    #38981050
Фотография Щукина Анна
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Legushkaкажется в оракле берется из расчета как 31 день"когда кажется - нужно молиться"© :-)

Документация оракла вполне себе четко описывает алгоритм расчета:
http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions089.htm MONTHS_BETWEEN returns number of months between dates date1 and date2. If date1 is later than date2, then the result is positive. If date1 is earlier than date2, then the result is negative. If date1 and date2 are either the same days of the month or both last days of months, then the result is always an integer. Otherwise Oracle Database calculates the fractional portion of the result based on a 31-day month and considers the difference in time components date1 and date2.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / months_between ora-->postgres
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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