ハッカーのメーリングリストのこのスレッドによると:
http://www.mail-archive.com/[email protected]/msg86725.html
これは、to_char
として意図された動作です。 LC_MESSAGES設定によって異なります
あなたの場合、使用しているフォーマットはロケールに依存しないため、これは明らかに意味がありません。したがって、インデックスでテキスト表現を使用する必要がある場合は、独自のto_char()関数を作成して、次のようにマークできます。不変:
CREATE OR REPLACE FUNCTION my_to_char(some_time timestamp)
RETURNS text
AS
$BODY$
select to_char($1, 'yyyy-mm-dd');
$BODY$
LANGUAGE sql
IMMUTABLE;
インデックス内のテキストとして使用する必要がある場合(およびSamが提案した日付へのキャストを使用できない場合)、不変としてマークできる独自のフォーマット関数を作成する必要があります。その後、インデックスで使用できます。
ただし、Postgresを使用するには my_to_char()
を呼び出す必要があるインデックス SQLステートメントでも同様です。組み込みのto_char()
を使用すると、認識されません。
しかし、インデックスでストレート日付を使用するサムの提案はおそらくより良いと思います