我得到一个错误"日期超出时间戳的范围";在以下情况下:
select '1000000-01-01'::date; --> 1000000-01-01 -> ok!
select extract(year from ('1000000-01-01'::date)) -> date out of range for timestamp
select to_char('1000000-01-01'::date, 'YYYY') -> date out of range for timestamp
我想问题在于某个地方的日期被转换为时间戳。
如何在我的情况下提取年份?
是的,似乎任何时候对date
执行操作时,它都会转换为timestamp
。我能想到的最好的:
select split_part('1000000-01-01', '-', 1) as year;
year
---------
1000000
--If value is actual date:
select split_part('1000000-01-01'::date::text, '-', 1) as year;
year
---------
1000000