Вы неправильно интерпретируете концепцию типа данных DATE
. Вероятно, вы смешиваете формат отображения дат (значение, которое вы видите при отображении значения date
) и их внутреннее представление .
A date
и есть свидание. Он хранится внутри в некотором формате c базы данных, о котором вам не нужно беспокоиться. Таким образом, нет необходимости в проверочном ограничении для управления форматом.
Когда вам нужно отобразить дату, вы можете использовать функцию to_char()
, чтобы отформатировать ее как строку, например:
to_char(birthday, 'yyyy-mm-dd')
Вы также можете установить параметр сеанса NLS_DATE_FORMAT
, чтобы все даты автоматически формировались в заданном формате при отображении:
alter session set nls_date_format = 'yyyy-mm-dd';