sql >> Database teknologi >  >> RDS >> Oracle

Oracle SQL-forespørgsel til datoformat

to_date() returnerer en dato kl. 00:00:00, så du skal "fjerne" referatet fra den dato, du sammenligner med:

select * 
from table
where trunc(es_date) = TO_DATE('27-APR-12','dd-MON-yy')

Du vil sandsynligvis oprette et indeks på trunc(es_date) hvis det er noget du laver regelmæssigt.

Den bogstavelige '27-APR-12' kan fejle meget nemt, hvis standarddatoformatet ændres til noget andet. Så sørg for at du altid bruger to_date() med en korrekt formatmaske (eller en ANSI-literal:date '2012-04-27' )

Selvom du gjorde rigtigt ved at bruge to_date() og ikke afhængig af impliceret datatypekonvertering, har din brug af to_date() stadig en subtil faldgrube på grund af formatet 'dd-MON-yy' .

Med en anden sprogindstilling kan dette let fejle, f.eks. TO_DATE('27-MAY-12','dd-MON-yy') når NLS_LANG er sat til tysk. Undgå alt i formatet, der kan være anderledes på et andet sprog. Ved at bruge et firecifret årstal og kun tal f.eks. 'dd-mm-yyyy' eller 'yyyy-mm-dd'



  1. php og mysql - Send afkrydsningsfelt, alternativknap og rullemenuresultater fra bruger til mysql-database og gem det der

  2. MySQL 5 venstre join ukendt kolonne

  3. MySQL5.6 sidder fast i processen, der forsøger at starte tjenesten

  4. MySQl, join/flet 2 tabeller uden delt kolonne og bestilling efter en fælles kolonne