Oracle
 sql >> Base de données >  >> RDS >> Oracle

Sélectionnez et mettez à jour les lignes avec la date du 00/00/0000 00:00:00 00 dans Oracle

J'ai trouvé la réponse à cela en jouant un peu avec. Il suffit de le mettre ici pour qu'il puisse être utile à quelqu'un d'autre s'il en a besoin.

Pour rechercher des lignes avec 00/00/0000 00:00:00 00 value, cette clause Where fonctionne :

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

Pour trouver des lignes qui pourraient avoir plus de valeurs de date comme celles-ci :

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;

Maintenant, cela sélectionne également les lignes avec 00/00/0000 00:00:00 00 jour.

Et comme pour la mise à jour, vous pouvez utiliser cet exemple :

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 ');