2

varchar である thedate という名前の列があります。行の例は次のとおりです。

2月29日

今日と比較したいので、この値を日付に変換します。to_date を試してみましたが、奇妙な値を取得しています:

0001-01-29 紀元前

2012-02-29 にしたいです。なぜそれが機能していないのですか?自動的に現在の年が入力されると思っていましたが、何らかの理由で月が 1 つ遅れています。不要なBCも記載しています。

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

2 に答える 2

3

フィールドのデータが実際に「2 月 29 日」の場合は、自分で年を入力する必要があります。それがあなたに1BCを与える理由です。これを試すか、「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 に答える