我有一個表 table1
vid    vname     vyear   vmonth  vday   vhour  vminute
001     james    2006     12      1      17       10
001     james    2006     12      1      20       12
001     james    2006     12      2      8        20我想根據輸入的時間段後刪除該時間段的記錄

2006/12/1 19:30 - 2006/12/2 8:30 執行後刪除了以上前兩條記錄,請問這個語句該怎麼寫! 謝謝

解决方案 »

  1.   

    delete from table1 where to_date(vyear||'/'||vmonth||'/'||vday||' '||vhour||':'||vminute,'yyyy/mm/dd hh24:mi') between to_date('2006/12/1 19:30','yyyy/mm/dd hh24:mi') and to_date('2006/12/2 8:30','yyyy/mm/dd hh24:mi');
      

  2.   

    hzl1984(hzl1984) 你好
    我執行你的語句可是出現了錯誤ORA-01847:當月天次必須介於1和當月的最後一天之間我用的是ORACLE 8.17,請幫忙一下,謝謝
      

  3.   

    检查一下你的表中VDAY字段看是否超过了当月的最后一天
    例如2月不会有30号的情况 
    或者先把他们拼接出来查看一下   
      

  4.   

    真的如 love_2008 所說
    在12月份有一條 vday=32 記錄,刪掉ok了.感謝 hzl1984(hzl1984),love_2008