2

我有一个名为 thedate 的列,它是 varchar。行的一个例子是:

2月29日

我想将此值转换为日期,因为我想将它与今天进行比较。我试过 to_date 但我得到了一个奇怪的值:

0001-01-29 BC

我希望它是 2012-02-29。知道为什么它不起作用吗?我认为它会自动为我输入当前年份,并且由于某种原因该月份落后了。它还列出了不需要的 BC。

select to_date(thedate, 'YYYY-MM-DD') from market;
4

2 回答 2

3

如果字段中的数据确实是“2 月 29 日”,那么您将不得不自己填写年份。这就是为什么它给你 1 BC。试试这个或用一个函数替换 '2012' 来获取当前年份。

从市场中选择 to_date('2012 '||thedate, 'YYYY MON DD');

于 2012-05-13T00:38:26.717 回答
2

试试这个:

select ('feb 29 ' || extract(year from CURRENT_DATE)) ::date
于 2012-05-13T00:59:11.760 回答