SELECT
extract(year from interval age(timestamp '11.1.11',timestamp '11.2.08')) * 12
+ extract(month from interval age(timestamp '11.1.11',timestamp '11.2.08'))
количество месяцев между 2 датами PostgreSQL
Hello! Люди, плиииз помогите. Как можно получить количество месяцев между двумя датами. (СУБД - PostgreSQL)
http://www.postgresql.org/docs/8.0/interactive/functions-datetime.html
думаю, тут ты найдёшь, что тебе надо
сейчас постгры под рукой нет, так что попробовать негде.
по идее тебе оператора вычитания и ф-ции extract должно хватить
думаю, тут ты найдёшь, что тебе надо
сейчас постгры под рукой нет, так что попробовать негде.
по идее тебе оператора вычитания и ф-ции extract должно хватить
Не наю - у мя уже мозги пухнут. Все до чего я додумалась -
SELECT age(timestamp '11.1.11',timestamp '11.2.08');
Выводит полностью интервал между датами. А мне надо "это полностью" перевести в месяци. Так, что выгребать год и переводить??!!!
ДА я туплю, потому что знаю, есть способ намного разумнее - НО КАКОЙ???
А за сайтик спасибо - клевый, но он у меня уже есть...
Код:
только окультурить это дело всё. я просто не знаю, как в постгре переменные объявляются :)
вот мое вычитание, как вы и писали - но выводит то количество дней... а мне месяцы....т.е ща у меня проблемка уже как получить нужный мне формат разности...
спасибки за написаное выше - прикольно, ща буду "окультуривать":)
если не получиться - завтра под рукой будет постгра, будет где попробовать
ок. я напишу про свои успехы(если таковые будут:)). Спасиб тебе.
с тя пиво :-P
PS шучу - помощь на пиво не тянет :)
хотя можно, я ведь тож с Херсона:)
А не знаете, как можно извлечь количество месяцев по номерам?
грубо говоря,
EXTRACT(MONTH FROM AGE( '10.07.2009 00:00:00'::timestamp,'25.06.2009 00:00:00'::timestamp)) возвратит 0
( месяц из интервала 0 years 0 mons 15 days 0 hours 0 mins .00 secs )
а мне необходимо по номерам месяцев 07-06 = 1 месяц
но и ещё с условием года т.е. разница например между датами 10.07.2010 и 25.06.2009 должна быть 13 месяцев..