sql >> Databasteknik >  >> RDS >> Oracle

Välj och uppdatera rader med Datum 00/00/0000 00:00:00 00 i Oracle

Jag hittade svaret på detta genom att leka med det lite. Bara att lägga det här bara så att det kan vara till hjälp för någon annan om de behöver det.

För att hitta rader med 00/00/0000 00:00:00 00 värde, den här Where-satsen fungerar:

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

Så här hittar du rader som kan ha fler datumvärden som dessa:

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;

Nu väljs även rader med 00/00/0000 00:00:00 00 datum.

Och när det gäller uppdateringen kan du använda detta exempel:

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. Anslutningspoolstrategi:bra, dålig eller ful?

  2. Oracle sql - datumsubtraktion inom en funktion

  3. Hur kan jag få en länk att ladda ett slumpmässigt php-ID på sidan?

  4. Skapa ett unikt ID