пятница, 26 августа 2016 г.

DEFAULT DATE 'yesterday'

Создал функцию в Postgres с таким заколовком:

CREATE OR REPLACE FUNCTION prepare_report(tradedate date DEFAULT DATE 'yesterday')

Т.е. функции нужна дата. Если дату не передали, то автоматически используется вчерашняя.

Но оказалось, что этой ситуации yesterday - это "вчера" по состоянию на момент создания функции, т.е. оно тупо заменяется  на константу.

Правильно так:

CREATE OR REPLACE FUNCTION prepare_report(tradedate date DEFAULT CURRENT_DATE - INTERVAL '1' day)


2 комментария:

Steve Bidenko комментирует...

Обалдеть! Как ты обнаружил это?

Valik комментирует...

Копировал текст процедуры из pgAdmin и увидел.

Ratings by outbrain