Тип Oracle DATE предшествует стандартной версии SQL (как и Informix), что делает это чрезвычайно трудным, если не невозможным, способом, нейтральным для СУБД. Разумеется, возникает вопрос «почему выбранное представление данных включает время».
В стандартном SQL очевидным методом будет приведение TIMESTAMP к DATE. У нас также нет четкого объяснения данных, по которым вы должны искать.
SELECT CAST(DateOfBirth AS DATE), ...other columns...
FROM TheMysteryTable -- Why do people hate giving tables names?
WHERE CAST(DateOfBirth AS DATE) =
CAST(TIMESTAMP '1950-01-01 10.22.06.010101120' AS DATE)
Но это предполагает, что вы пишете «дату для поиска» как литерал. Если это переменная хоста, то тип переменной хоста должен быть DATE, а не TIMESTAMP. И столбец DateOfBirth, вероятно, должен быть DATE, а не TIMESTAMP. Вы не должны использовать TIMESTAMP, если часть времени не релевантна - она тратит впустую память и тратит время вычислений.
Обратите внимание, что из-за приведений маловероятно, что СУБД сможет использовать какие-либо индексы или что-либо еще. Если бы типы были нормальными, тогда запрос был бы просто:
SELECT DateOfBirth, ...other columns...
FROM TheMysteryTable
WHERE DateOfBirth = DATE '1950-01-01'