Нечетный результат с использованием Oracle trunc ()? - PullRequest
0 голосов
/ 16 января 2019

Почему

select trunc(to_date('23/06/2017','DD/MM/YYYY'), 'DAY') from dual;

возвращает

19.06.17

вместо ожидаемого

23.06.17

Мы находимся на Oracle 11.

Ответы [ 3 ]

0 голосов
/ 16 января 2019

Формат DAY возвращает ближайший начальный день недели. В зависимости от конфигурации вашей БД это может быть воскресенье, понедельник (в вашем случае) ...

Возможно, вам нужен формат DD.

Oracle doc

0 голосов
/ 16 января 2019

DAY усекает до ближайшего воскресенья [1]

Вы можете использовать DD.

select trunc(to_date('23/06/2017','DD/MM/YYYY'), 'DD') from dual;
0 голосов
/ 16 января 2019

Ваш формат неверный, должен быть DD формат :

select trunc(to_date('23/06/2017','DD/MM/YYYY'), 'DD') from dual;

Модели формата даты для функций даты ROUND и TRUNC

DDD DD J День

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...