Nie. Data/sygnatury czasowe nie ma żadnego formatu . Oracle nie przechowuje daty/sygnatur czasowych w widocznym formacie. Widoczny format służy tylko do wyświetlania zamiar. Data jest przechowywana wewnętrznie w 7 bajtach, co jest zastrzeżonym formatem Oracle .
Oczywiście, że możesz. Możesz użyć TRUNC który obcina część czasu i pozostawia tylko część daty i typ danych pozostaje jako data.
Na przykład
SQL> SELECT TRUNC(SYSTIMESTAMP) my_tmstmp FROM DUAL;
MY_TMSTMP
----------
2015-05-29
Tak więc otrzymujesz dane wejściowe użytkownika w tym formacie jako ciąg . Musisz najpierw konwertować go na DATE przy użyciu TO_DATE a następnie porównaj.
Na przykład
WHERE TRUNC(dt_column) < TO_DATE('05/29/2015 12:07:58', 'MM/DD/YYYY HH24:MI:SS')
Jak już powiedziałem, jeśli chcesz zignorować część czasu, zastosuj TRUNC .
Jednak zastosowanie TRUNC w dniu kolumna pominie każdy zwykły indeks na tej kolumnie. Z punktu widzenia wydajności lepiej użyj warunku zakresu dat .
Na przykład
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