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

Oracleで日付が00/00/00000:000:00の行を選択して更新します

    少し遊んでみて、答えが見つかりました。他の人が必要なときに役立つように、ここに置くだけです。

    00/00/0000 00:00:00 00の行を検索するには 値、このWhere句は機能します:

    WHERE TO_CHAR(INVENTORY_DATE,'YYYYMMDDHH24MISS') = '00000000000000'
    

    次のような日付値が多い可能性のある行を見つけるには:

    Select TO_CHAR(INVENTORY_DATE, 'MM/DD/YYYY HH:MI:SS AM') "Inventory Date", MyTable.*
    From SOMESCHEMA.INVENTORY MyTable
    Where INVENTORY_DATE <  TO_DATE('01/01/1000 01:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM ')
    order by MyTable.INVENTORY_DATE ASC NULLS LAST
    FETCH FIRST 10 ROWS ONLY;
    

    これで、00/00/0000 00:00:00 00の行も選択されます。 日付。

    また、アップデートについては、次の例を使用できます:

    UPDATE SOMESCHEMA.INVENTORY
    SET INVENTORY_DATE = TO_DATE('12/30/1899 05:00:00 A.M.', 'mm/dd/yyyy hh:mi:ss a.m.', 'nls_date_language=american')
    Where INVENTORY_DATE < TO_DATE('01/01/1000 01:00:00 AM', 'MM/DD/YYYY HH:MI:SS AM ');
    



    1. データをコピーせずにOracleテーブルのコピーを作成するにはどうすればよいですか?

    2. テーブルの列が多すぎると、パフォーマンスが低下しますか?

    3. oracleSQL日付から時間を削除する方法

    4. SQL Serverでテキスト列をピボットする方法は?