Re: Using make_timestamp() to create a BC value

Поиск
Список
Период
Сортировка
От Adrian Klaver
Тема Re: Using make_timestamp() to create a BC value
Дата
Msg-id 971fc235-135e-3d11-9ae2-df4ff14c6d2a@aklaver.com
обсуждение исходный текст
Ответ на Using make_timestamp() to create a BC value  (Bryn Llewellyn <bryn@yugabyte.com>)
Список pgsql-general
On 10/6/21 2:59 PM, Bryn Llewellyn wrote:
> Everything that I say here applies to "make_timestamptz()", too. But my 
> code examples need less typing when I use plain "make_timestamp()".
> 

> (And sure enough, "raise info 'year: %', year" reports "-1".)
> 
> The doc for "make_timestamp()" here:
> 
>     www.postgresql.org/docs/14/functions-datetime.html
>     <http://www.postgresql.org/docs/14/functions-datetime.html>
> 

What version of Postgres are you using?

Postgres 13:

select extract(year from '0001-01-01 00:00:00 BC'::timestamp);
  date_part
-----------
         -1

select make_timestamp(-1,1,1,2,30,0);
ERROR:  date field value out of range: -1-01-01


Postgres 14:

select extract(year from '0001-01-01 00:00:00 BC'::timestamp);
  date_part
-----------
         -1

select make_timestamp(-1,1,1,2,30,0);
      make_timestamp
------------------------
  0001-01-01 02:30:00 BC

Postgres release notes


https://www.postgresql.org/docs/current/release-14.html#id-1.11.6.5.3

Allow make_timestamp()/make_timestamptz() to accept negative years 
(Peter Eisentraut)

Negative values are interpreted as BC years.



-- 
Adrian Klaver
adrian.klaver@aklaver.com



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

Предыдущее
От: Bryn Llewellyn
Дата:
Сообщение: Using make_timestamp() to create a BC value
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Using make_timestamp() to create a BC value