Данные не возвращены с этим предложением WHERE - PullRequest
0 голосов
/ 15 апреля 2020

select distinct trunc(err_log_date),to_char(trunc(err_log_date),'DAY') from ERR_TAB ;

Приведенный выше оператор возвращает даты с днем ​​как пятница. Но когда я использую тот же лог c в предложении where в предложении, он не получает никаких данных. Почему это может быть?

select * from ERR_TAB where to_char(trunc(err_log_date),'DAY')='FRIDAY';

Ответы [ 3 ]

1 голос
/ 15 апреля 2020

Также можно включить элемент формата FM, который возвращает значение без начальных или конечных пробелов:

select * from ERR_TAB where to_char(trunc(err_log_date),'FMDAY')='FRIDAY';
                                                         --
                                                         This!
1 голос
/ 15 апреля 2020

Это потому, что Oracle ставит пробелы в конце - по крайней мере, чтобы соответствовать длине "среды", но точная длина может зависеть от настроек интернационализации.

Просто используйте DY:

where to_char(trunc(err_log_date), 'DY') = 'FRI';
0 голосов
/ 15 апреля 2020

Спасибо вам обоим! Поэтому я разработал еще один вариант, чтобы обернуть мой исходный запрос с помощью обрезки, и это сработало. Ниже дано.

select * from ERR_TAB where trim(to_char(trunc(err_log_date),'DAY'))='FRIDAY';
...