Вкл. Страница Павла - это следующая функция:
CREATE OR REPLACE FUNCTION makedate(year int, dayofyear int)
RETURNS date AS $$
SELECT (date '0001-01-01' + ($1 - 1) * interval '1 year' + ($2 - 1) * interval '1 day'):: date
$$ LANGUAGE sql;
У меня есть следующий код:
makedate(y.year,1)
Каким самым быстрым способом в PostgreSQL является создание даты на 1 января данного года?
Функция Павла заставила бы меня поверить, что это:
date '0001-01-01' + y.year * interval '1 year' + interval '1 day';
Моя мысль была бы больше похожа на:
to_date( y.year||'-1-1', 'YYYY-MM-DD');
Ищу самый быстрый способ использования PostgreSQL 8.4. (Запрос, использующий функцию даты, может выбирать от 100 000 до 1 миллиона записей, поэтому ему нужна скорость.)
Спасибо!