Nej. Dato/tidsstempler har ikke noget format . Oracle gemmer ikke dato/tidsstempler i det format, du ser. Det format, du ser, er kun til visning formål. Datoen er internt gemt i 7 bytes, hvilket er Oracles proprietære format .
Selvfølgelig kunne du det. Du kan bruge TRUNC som afkorter tidsdelen og efterlader kun datodelen og datatypen som dato.
For eksempel,
SQL> SELECT TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;
MY_TMSTMP
----------
2015-05-29
Så du får brugerinput i det format som en streng . Du skal først konvertere den til DATE ved hjælp af TO_DATE og derefter sammenligne det.
For eksempel,
WHERE TRUNC(dt_column) < TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
Som jeg allerede har sagt, hvis du vil ignorere tidsdelen, skal du anvende TRUNC .
Anvendelse af TRUNC på dato kolonnen ville undertrykke ethvert almindeligt indeks på den kolonne. Ud fra et ydeevnesynspunkt er det bedre at bruge en datointervalbetingelse .
For eksempel,
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