2017-09-02 16 views
0
にCURRENT_DATEと日付を比較

私はこのクエリで間違っているものを得ることができません(ORACLE QUERY)はオラクル

SELECT * 
FROM HR.CUSTOMER C 
dual 
WHERE CREATED_AT = current_date 
; 

私はOracleでは、このエラー

ORA-00933: SQL command not properly ended 
+2

削除 'dual'を使用して、もう一度試してください。 – krokodilko

答えて

2

を取得していますそれはcurrent_dateありませんが、sysdate今のところはtrunc(sysdate)です。

さらに、dualが多すぎます。

select * 
from hr.customer 
where created_at = trunc(sysdate); 
+1

こんにちはThorsten、OracleにはCURRENT_DATE関数がありますが、クライアントのタイムゾーンに従って現在の日付と時刻が返されます。 SYSDATEは、サーバーのタイムゾーン内の現在の日付を戻します。しかし、フィールドが "CREATED_AT"と呼ばれているので、異なるタイムゾーン間で一貫性を持たせるために、SYSDATEでいっぱいになることをお勧めします。 最高のFelix – fhossfel

+0

@ fhossfel:ありがとうフェリックス、私はそれを知らなかった。 'CURRENT_DATE'は存在しますが、ここでは使用していない可能性があります。ご説明ありがとうございます。 –

0

すでにテーブルを知っていて、そこからすべての列を取得したいので、あなたが使用する必要はありませんデュアル

DUAL表がして、本の特別な1行、1列のテーブルですOracleおよび他のデータベースインストールでは がデフォルトです。 Oracleでは、 表には、DUMMYという1つのVARCHAR2(1)列があり、値は 'X'です。 SYSDATEやUSERなどの疑似カラムの選択に使用するのに適しています。

は、あなただけの次のクエリの代わりに

SELECT * 
    FROM HR.CUSTOMER 
WHERE CREATED_AT = current_date;