1

API を介して日付を含むクエリを実行しようとしています。日付は ISO_8601 日付形式 (yyyy-MM-dd'T'HH:mm:ssZ)である必要があります。

たとえば、テーブル内のタプルの 1 つに日付が含まれている可能性があります。

2012-11-11T00:00:00+0000. 

Unicode では、次のように照会されます。

2012-11-11T00%3A00%3A00%2B0000

日付が有効かどうかを確認するすべてのチェックに合格しましたが、次の SQL 例外が発生しています。

SQL Exception: ERROR: operator does not exist: timestamp with time zone >= character varying

API を介してクエリを実行する私のコードは Python で書かれています。例外の意味がわからない?文字列でタイムスタンプを照会することはできませんか?

4

1 に答える 1

2

タイムスタンプ リテラルを指定するには、次の形式を使用します。

where ts_column >= timestamp '2012-11-11 T00:00:00+0000'

キーワードtimestampは、タイムスタンプ リテラルを定義するために重要です。それ以外の場合は、「のみ」の文字値になります (エラー メッセージが表示されます)。値は、ISO 日付スタイルに準拠する必要があります。

別のオプションは、次のto_timestamp関数を使用することです。

where ts_column >= to_timestamp('2012-11-11 00:00:00', 'yyyy-mm-dd hh24:mi:ss');

これにより、リテラルの実際の形式をより詳細に制御できます。

詳細については、マニュアルを参照してください: http://www.postgresql.org/docs/current/static/functions-formatting.html#FUNCTIONS-FORMATTING-DATETIME-TABLE

于 2012-11-27T09:10:58.517 に答える