Re: Date for a week day of a month

Поиск
Список
Период
Сортировка
От Nick Barr
Тема Re: Date for a week day of a month
Дата
Msg-id 468AA0B7.9020607@chuckie.co.uk
обсуждение исходный текст
Ответ на Date for a week day of a month  (Emi Lu <emilu@encs.concordia.ca>)
Ответы Re: Date for a week day of a month  (Emi Lu <emilu@encs.concordia.ca>)
Список pgsql-general
Emi Lu wrote:
> Hello,
>
> Can I know how to get the date of each month's last Thursday please?
>
> For example, something like
>
> Query:  select getDateBaseOnWeekday('2007-04-01', 'Last Thursday');
> Result: 2007-04-26
>
> Thank you!
>


CREATE OR REPLACE FUNCTION lastday (date,int) RETURNS DATE AS '
DECLARE
    result   date;
    last_day date;
    last_dow int;
BEGIN
    last_day := $1 + ''1 month''::interval - ''1 day''::interval;
    last_dow := EXTRACT(dow FROM last_day)::int - $2;
    RETURN last_day + (''1 day''::interval * last_dow);
END;
' LANGUAGE plpgsql;


xxxx=# select lastday('2007-04-01', 5);
  lastday
------------
 2007-04-26
(1 row)

The second parameter is the day of the week that you want, which has the
same spec as EXTRACT(dow FROM...). Values are from 0-6 where 0 is Sunday.

Enjoy!

Nick


В списке pgsql-general по дате отправления:

Предыдущее
От: "A. Kretschmer"
Дата:
Сообщение: Re: Date for a week day of a month
Следующее
От: Charles Pare
Дата:
Сообщение: Re: Stored Procedure: Copy table from; path = text variable