No. Data/ora non ha alcun formato . Oracle non memorizza la data/i timestamp nel formato che vedi. Il formato che vedi è solo per la visualizzazione scopo. La data è memorizzata internamente in 7 byte, che è il formato proprietario di Oracle .
Certo che potresti. Potresti usare TRUNC che tronca la parte di tempo e lascia solo la parte di data e il tipo di dati rimane come data.
Ad esempio,
SQL> SELECT TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;
MY_TMSTMP
----------
2015-05-29
Quindi, ottieni l'input dell'utente in quel formato come una stringa . Devi prima convertire in DATE utilizzando TO_DATE e poi confrontalo.
Ad esempio,
WHERE TRUNC(dt_column) < TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
Come ho già detto, se vuoi ignorare la parte temporale, applica TRUNC .
Tuttavia, applicando TRUNC alla data colonna sopprimerebbe qualsiasi indice regolare su quella colonna. Dal punto di vista delle prestazioni, è meglio utilizzare una condizione dell'intervallo di date .
Ad esempio,
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