Ne. Datum/Časová razítka nemá žádný formát . Oracle neukládá datum/časová razítka ve formátu, který vidíte. Formát, který vidíte, je pouze pro zobrazení účel. Datum je interně uloženo v 7 bajtech, což je proprietární formát společnosti Oracle .
Samozřejmě, že mohl. Můžete použít TRUNC který zkrátí časovou část a ponechá pouze datovou část a datový typ zůstane jako datum.
Například,
SQL> SELECT TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;
MY_TMSTMP
----------
2015-05-29
Vstup uživatele tedy získáte v tomto formátu jako řetězec . Nejprve musíte převést do DATE pomocí TO_DATE a pak to porovnejte.
Například,
WHERE TRUNC(dt_column) < TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
Jak jsem již řekl, pokud chcete ignorovat časovou část, použijte TRUNC .
Nicméně použití TRUNC v datovém sloupci potlačí jakýkoli běžný index na tom sloupci. Z hlediska výkonu je lepší použít podmínku časového období .
Například,
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