sql >> データベース >  >> RDS >> Oracle

SQLコマンドで日付を比較する

    いいえ。日付/タイムスタンプ フォーマットはありません 。 Oracleは、日付/タイムスタンプを表示されている形式で保存しません。表示される形式は表示専用です 目的。 日付は、Oracle独自の形式である7バイトで内部的に保存されます

    もちろんできます。 TRUNCを使用できます 時間部分を切り捨て、日付部分のみを残し、データ型は日付のままにします。

    たとえば、

    SQL> SELECT TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;
    
    MY_TMSTMP
    ----------
    2015-05-29
    

    したがって、その形式のユーザー入力を文字列として取得します 。最初に変換する必要があります TO_DATEを使用してDATEに挿入します そしてそれを比較します。

    たとえば、

    WHERE TRUNC(dt_column) < TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
    

    すでに述べたように、時間部分を無視したい場合は、 TRUNCを適用します。 。

    ただし、 TRUNCを適用する 日付の 通常のインデックスを抑制します その列に。パフォーマンスの観点から、日付範囲条件を使用することをお勧めします 。

    たとえば、

    WHERE dt_column
    BETWEEN 
            TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
    AND     
            TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS') +1
    


    1. PHPでutf8mb4文字をutf8に変換します

    2. 文字列が数値であるかどうかを確認するcross-dbmsの方法

    3. SchemaSpyPostgreSQL-警告-接続エラー

    4. Oracle-参照カーソルから特定の列を選択します