表中有一个日期字段,最后要求查询出来的数据是每周一三五的数据,请问可以在oracle语句中实现吗?如何实现啊?谢谢

解决方案 »

  1.   

    select to_char(sysdate,'dy') from dual;返回星期几
      

  2.   

    如日期字段为c_week
    select * from table where to_char(to_date(c_week,'yyyymmdd'),'day') in ('monday','wednesday','friday');
    ('monday','wednesday','friday')可以参考数据库中对星期保存的实际数据格式。
      

  3.   

    select to_char(sysdate-1,'D') from dual;
      

  4.   

    数据表中似乎没有('monday','wednesday','friday')这些数据的,我该怎么办呢
      

  5.   

    topitter211() :我想问一下,sysdate不是应该就是系统时间吗?那今天周三的话应该就是的3咯,那为什么要减去1 啊?
      

  6.   

    可以用 select to_char(to_date(sysdate,'yyyymmdd'),'day') from dual;检查返回的结果格式,如果是 星期X,则可以将('monday','wednesday','friday') 改为 ('星期一','星期三','星期五') 这个根据数据库实际配置有关.
      

  7.   

    这样可能好理解点.
    select to_char(sysdate,'D') - 1 from dual;
    外国的星期是从周日开始的原因吧.
    我是这样认为的
      

  8.   

    SELECT * FROM table1 WHERE to_char(col1, 'D') - 1 IN (1, 3, 5)
      

  9.   

    select case to_char(H2,'dy') when '星期三' then to_char(H2,'dy') when '星期一' then to_char(H2,'dy') end as tt from ht_lysqd
    where to_char(H2,'dy') in ('星期一','星期三')H2 为 Date