查询特定日期的Oracle数据库

时间:2014-12-16 17:19:15

标签: oracle

我需要找到一周中某一天发生的所有事件 - 比如星期三。我可以使用to_char(event_date,' Day')转换我的日期字段以显示日期,但是当我将其放在where子句中时,它不会返回任何结果。

例如: to_char(event_date,' Day')=' Wednesday'

我也试过这个: 选择工作日 (选择to_char(event_date,' Day')"工作日"来自活动) 工作日='星期三'

两者都不会返回任何结果。有没有办法实现这个目标?

2 个答案:

答案 0 :(得分:0)

也许你的数据库语言不是英文,我建议你像这样设置NLS_DATE_LANGUAGE

to_char(event_date, 'Day','NLS_DATE_LANGUAGE=ENGLISH')

检查例如

select to_char(sysdate, 'Day','NLS_DATE_LANGUAGE=ENGLISH') from dual; --returns Tuesday
select to_char(sysdate, 'Day','NLS_DATE_LANGUAGE=SPANISH') from dual; --returns Martes

答案 1 :(得分:0)

无论如何,这不是好方法。例如,使用我的NLS设置的to_char(event_date,'Day')将产生'Среда',而不是'Wednesday'。尝试使用

where to_char(event_day, 'D') = '3'

它应该可以工作,例如

SQL> select dt, to_char(dt, 'D')
  2  from (select trunc(sysdate, 'MM') + rownum - 1 dt from dual connect by level <= 31)
  3  where to_char(dt, 'D') = '3';

DT          TO_CHAR(DT,'D')
----------- ---------------
03.12.2014  3
10.12.2014  3
17.12.2014  3
24.12.2014  3
31.12.2014  3