次のクエリを実行すると。select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-MM-YYYY');
「SQL 状態 42725: エラー: 関数 to_char(unknown, unknown) が一意ではありません」というエラーが表示される
上記の選択クエリを実行するには?
次のクエリを実行すると。select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = to_char('12-02-2012','DD-MM-YYYY');
「SQL 状態 42725: エラー: 関数 to_char(unknown, unknown) が一意ではありません」というエラーが表示される
上記の選択クエリを実行するには?
あなたはおそらく意味しto_char('12-02-2012'::date, 'DD-MM-YYYY')
ます。to_char
プレーン文字列を文字列に変換できません。それでも、それは意味がないようです。日付定数の形式に応じて、これら2つのいずれかが必要です(提供した実際の日付の例からは判断できません):
select * from surgicals where to_char(dt_surgery ,'DD-MM-YYYY' ) = '12-02-2012';
select * from surgicals where to_char(dt_surgery ,'MM-DD-YYYY' ) = '12-02-2012';
ここで間違っているのは、日付の文字列比較を行っていることです。タイムゾーンなどの楽しいことを考慮に入れても、正しく取得できる日付/時刻の計算を使用します。
多分これはあなたが必要とするものです:
SELECT *
FROM surgicals
WHERE date_trunc('day', dt_surgery) = '2012-02-12'
;