2016-03-23 10 views
4

SQL ServerとOracleの両方で動作するように(つまり、環境によってコメントやコメントを外すことなく)次のように書くことができます。SQL ServerとOracleの両方で今日の日付を取得するための互換構文

SELECT col1, col2 
FROM table 
WHERE -- anytime today 
    -- date_requested = TRUNC(SYSDATE) -- Oracle 
    date_requested = CONVERT(date, GETDATE()) -- SQL Server 

date_requestedと今日の日付(時間なし)を比較する必要があります。

+2

私はそれが可能だわからないんだけど、私もそれの必要性を理解していません。どちらのデータベースもストアドプロシージャをサポートしており、それぞれのストアドプロシージャを関連する構文で簡単に作成し、どのクライアントからも同じ方法で実行できます。 –

+0

WHERE句にIFF構文(または何でも)が必要なので、どのような方法でもカスタマイズしたくないデータベースや、単に拡張された権限を持たないデータベースに対して自分の要求を実行することができます。 – user3341592

+0

両方の方法が異なるため、ストアドプロシージャのような複雑な手法を使用して作業することはできません。現在のRDBMSを確認してください。 –

答えて

0

オラクルで関数のgetDateを作成します。

create or replace function getDate 
return date is 

    l_sysdate date; 

begin 

    select sysdate 
    into l_sysdate 
    from dual; 

    return l_sysdate; 

end; 
/

をあなたはこのようにそれを使用することができます:select getdate() from dual

+1

選択変数またはローカル変数は必要ありません。関数本体を 'return sysdate;'に減らすことができます。 –

関連する問題