表my_test中的数据为:M_ID M_NAME M_HEIGHT M_SAL M_DATE
113 MissChen 1.68 3800 2011/8/23 9:00
114 MissNing 1.7 4800 2011/8/24 9:00
115 MissGao         1.58 2800 2011/8/25 9:00
116 MissMo   1.68 1800 2011/8/26 9:00
117 MissPing 1.88 8800 2011/8/27 9:00
118 MrZhan         1.7 9800 2011/8/28 9:00
118 MrWang         1.6 2000 2011/8/29 9:00
110 MrZhang         1.73 6000 2011/8/20 9:00
111 MrLiu         1.73 6000 2011/8/21 9:00
112 MrQiu         1.63 2000 2011/8/22 9:00查询语句为:
select * from my_test where m_date>(to_date('2011/08/25','YYYY/MM/DD')) and m_date<(to_date('2011/08/27','YYYY/MM/DD'));
结果是:
M_ID M_NAME               M_HEIGHT      M_SAL M_DATE
---------- -------------------- -------- ---------- -----------
       115 MissGao                  1.58       2800 2011/8/25 9
       116 MissMo                   1.68       1800 2011/8/26 9求的是大于25号小于27号的记录,不是只有26号的复合条件么?怎么25号的也出来了?另外问一个小问题,为何在command Windows里查询到的时间结果的小时和分钟不完整呢?SQL Windows里查询的时间是精确到时分秒的。

解决方案 »

  1.   

    大于25号的,应该是>to_date('2011/08/25 23:59:59','YYYY/MM/DD HH24:MI:SS')
    注意时分秒
      

  2.   


    --m_date记录的时间是精确到时分秒的,那你比较的条件也应该精确到时分秒--要比较大于25号小于27号,应该这样写:表my_test中的数据为:select * from my_test 
    where m_date>(to_date('20110825235959','YYYYMMDDHH24MISS')) and m_date<(to_date('20110827000000','YYYYMMDDHH24MISS'));
      

  3.   

    好的,我知道为什么了!谢谢楼上几位热心的朋友!
    再想了解一下最后问的那个小问题就可以结贴啦!
    希望你们看到后回答一下!谢谢真command windwows中查询到的时间是显示不了时分秒达到吗?还是设置的问题?
      

  4.   

    显示不了时分秒,不知道怎么设置,但是你可以使用to_char函数来显示时分秒select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
      

  5.   

    具体要精确到十分秒才对呢?
    真command windwows中查询到的时间是显示不了时分秒达到吗?还是设置的问题?
    cmd-time可以查到时分秒的,但还是具体实际的需求了。
      

  6.   

    format 设置时间显示格式的问题。
      

  7.   

    ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'select sysdate from dual ;