По умолчанию Элемент формата дополняется длиной самого длинного имени на языке дат; который на английском языке - среда с 9 символами. Вы можете увидеть отступы с:
select '<'|| to_char(sysdate + level, 'Day') ||'>' from dual connect by level <= 7;
'<'||TO_CHAR(SYSDATE+LEVEL,'DAY')||'>'
--------------------------------------
<Thursday >
<Friday >
<Saturday >
<Sunday >
<Monday >
<Tuesday >
<Wednesday>
Вы можете добавить FM format model modifier подавить эти отступы:
select '<'|| to_char(sysdate + level, 'FMDay') ||'>' from dual connect by level <= 7;
'<'||TO_CHAR(SYSDATE+LEVEL,'FMDAY')||'
--------------------------------------
<Thursday>
<Friday>
<Saturday>
<Sunday>
<Monday>
<Tuesday>
<Wednesday>
Таким образом, если предположить Day
столбец вашей таблицы является varchar2
и не проложенным тоже ваш подзапрос должен быть :
(SELECT TO_CHAR(TO_DATE('03/10/2016','DD/MM/YYYY'), 'FMDay') FROM DUAL)
... или как @a_horse_with_no_name упоминалось сделать то же самое без подзапроса:
...
WHERE DN_WORKING_HOURS.DAY = TO_CHAR(TO_DATE('03/10/2016','DD/MM/YYYY'), 'FMDay');
Имейте в виду, что имена день являются NLS-зависимыми, так что если это когда-либо может быть запущен в неанглийской среде вы могли бы сделать его более безопасным с:
...
WHERE DN_WORKING_HOURS.DAY = TO_CHAR(TO_DATE('03/10/2016','DD/MM/YYYY'), 'FMDay',
'NLS_DATE_LANGUAGE=ENGLISH');
Вы работаете на одном языке ? Что означает 'SELECT TO_CHAR (TO_DATE ('03/10/2016 ',' DD/MM/YYYY '),' Day ') FROM DUAL' фактически показывает вам, что в сеансе выполняется весь запрос? Каким типом данных является столбец 'DAY'? –
DN_WORKING_HOURS.DAY является varchar2? –
день col находится в CHAR, – MoshMosh