2011-07-12 15 views
1

私は、PostgreSQLデータベースをインポートしていると私は、このエラーを取得しておいてください。PostgreSQLの型キャストの問題

ERROR: operator does not exist: date >= integer LINE 1: ...tut.id_pf AND evidenta_info_statut.data_sch_statut>=2010-07-...^HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.

私のクエリは次のようになります。

SELECT p_fiz.nr_certif, p_fiz.nume, p_fiz.prenume, localizari.id_jud, evidenta_info_statut.data_sch_statut,evidenta_info_statut.statut, rapoarte_anuale.data_depunere,rapoarte_anuale.angajamente, evidenta_asigurari.data_end,lista_statute.descriere, localizari.id_jud, p_fiz.nume, p_fiz.prenume, p_fiz.nr_certif,p_fiz.id_pf,p_fiz.nume,p_fiz.prenume,p_fiz.codificare from p_fiz INNER JOIN localizari USING (id_loc) INNER JOIN evidenta_contacte USING (id_contact) LEFT JOIN lista_statute USING (id_statut_existenta) LEFT JOIN evidenta_info_statut ON p_fiz.id_pf=evidenta_info_statut.id_pf AND evidenta_info_statut.data_sch_statut>=2010-07-12 LEFT JOIN rapoarte_anuale ON p_fiz.id_pf=rapoarte_anuale.id_pf AND rapoarte_anuale.an > 2010 LEFT JOIN evidenta_asigurari ON p_fiz.id_pf=evidenta_asigurari.id_pf AND evidenta_asigurari.data_start >= 2010-07-12 ORDER BY localizari.id_jud ASC, p_fiz.nume ASC, p_fiz.prenume ASC, p_fiz.nr_certif ASC;

私はそれを理解し、それはそれらの>だ=または>エロルを引き起こします。

これを修正する方法はありますか?

P.S.私はFedoraでPostgreSQL 8.4を実行しています。

+1

引用符で囲まれた日付。私たちを助けてください。私たちはあなたを助けることができます。 –

+0

クエリをクリーンアップすると、その中にゴミがたくさんあります。多くの列が複数回選択されており、その問合せは読めず理解できません。 –

答えて

2

あなたは日付を引用する必要があります。

evidenta_info_statut.data_sch_statut >= '2010-07-12' 
evidenta_asigurari.data_start >= '2010-07-12' 

引用符がない場合、実際には整数の計算として評価されます。 2010 - 7 - 12 = 1991

+0

ちょっとフランク、私は引用符を追加しましたが、今は、クエリが別のマシン上で正常に動作するため、OKではない空の結果セットを取得します。 – Psyche

+0

Postgresのバージョンが8.3より古い場合は、暗黙の型キャストでエラーが発生しません。他のマシンで8.2またはそれ以上稼働していますか? –

0

ラップあなたは読みやすくするためのフォーマットに何の努力を入れていない場合は、あなたの質問を読ん人のなすがままにしていることを知っているのに十分な担当者を持っている

'2010-07-12' 
関連する問題