アプリ版:「スタンプのみでお礼する」機能のリリースについて

PG初心者です。 SQLで下記のような文を実行すると「文字が無効です」というメッセージが出てしまいます。 WHERE句より前は間違っていないようです。 ""で括ったテーブル名等も間違いないことを確認済です(文字は伏せます)。 となると{ts…以下になると思いますが、何がまずいのでしょうか。

WHERE ("*****"."@@@_@@@@">={ts '1998-07-02 00:00:00'} AND "*****"."@@@_@@@@"<{ts '1998-07-03 00:00:00'})

A 回答 (1件)

> FROM


> WHERE (
> "*****"."@@@_@@@@" >= {ts '1998-07-02 00:00:00'}
> AND "*****"."@@@_@@@@" < {ts '1998-07-03 00:00:00'}
> );

上記はOracleのSQL構文ではありません。
OracleのSQL構文で書くとTO_DATEを使用します。
※@@@_@@@@がDate型と想定しています。

Where (
"*****"."@@@_@@@@" >= TO_DATE('1998-07-02 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND "*****"."@@@_@@@@" < TO_DATE('1998-07-03 00:00:00','yyyy-mm-dd hh24:mi:ss')
);


select * from emp
Where (
emp.HIREDATE >= TO_DATE('1981-02-20 00:00:00','yyyy-mm-dd hh24:mi:ss')
AND emp.HIREDATE < TO_DATE('1981-02-21 00:00:00','yyyy-mm-dd hh24:mi:ss')
);


EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- -------------------- ------------------ ---------- -------- ---------- ---------- ----------
7499 ALLEN SALESMAN 7698 81-02-20 1600 300 30

---
{ts '1998-07-03 00:00:00'})は、JDBCやODBC等のドライバがOracle用の書式に変換するようですが、この変換を行わないドライバを使用してSQLを投げているのなら当然エラーになると思います。

JDBCのリファレンスを見ると、JDBCドライバが変換すると書いてあります。

Oracle Database JDBC開発者ガイドおよびリファレンス
10g リリース2(10.2)

http://otndnld.oracle.co.jp/document/products/or …
    • good
    • 0
この回答へのお礼

実行できました!
ありがとうございます。

お礼日時:2008/08/25 19:05

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!