1.我在web前台输入,如果日期格式为2008-01-11 00:00:00 .DB内数据则为2008-01-11!后面的00:00:00自动没有了啊我这个字段类型是date不知道怎么解决啊?2.我想从db里面做一个循环每次读10000条数据!然后如果总数据量是50001,就应该是读5次10000条,最后在读1条!不知道这个逻辑怎么写啊?

解决方案 »

  1.   

    00:00:00只是不显示而已,其实是有的,
    你用to_char(date,'yyyymmddhh24miss')一试就知道了
      

  2.   


    --采用分页的逻辑思路处理,如:
    select top 60000 * from table where id not in (select top 50000 id from table)
      

  3.   

    1是显示问题,不说了
    2的话不知道从db里面做一个循环 是什么意思,可以select trunc(50001/10000)得出外层循环次数,
    内层循环10000次。最后循环mod(50001/10000)次
      

  4.   

    oracle是没有TOP的,是用rownum来实现分页的看此贴
    http://topic.csdn.net/u/20080529/16/5754467f-b087-4c0e-8822-cc6e779f5641.html
      

  5.   

    日期字段显示后没有时分秒,是由于显示的格式问题,在db中循环可用trunc函数.
      

  6.   

    第二个问题用 rownum限制 取数据 
      

  7.   

    这个是oracle数据库 不是sql server 数据库
      

  8.   

    这句话是对2楼说的
     1 的问题 是00:00:00 的数据被oracle忽略了
    2 的问题可以用rownum解决
      

  9.   

    1。我的字段类型是
    date :我不希望Oracle自作聪明的将她精确到毫秒啊.
    只要插入和读取的时候精确到秒就可以了!应该怎么修改啊!怎么能通过设置就修改啊!
    如过用sub 或者 to_date(str,'yyyymmdd...),这种的要修改的太多了啊
    2。我插入的数据是2008-01-11 00:00:00 
    然后我在toad和sqlplus里里面看到的都是2008-1-11
    但是我程序能得到2008-01-11 00:00:00不知道是为什么难道是toad自己处理了?ps:如果插入的是2008-01-11 00:00:01则toad得到的是2008-01-11 00:00:01 没有问题!
      

  10.   

    还是那句话,date类型必定是精确到毫秒的
    toad  和sqlplus 只是自动不把00:00:00显示而已,实际还是存在的
    所以你程序取出来是2008-01-11 00:00:00
    你要想取出来是2008-1-11  就用to_char(日期,'yyyy-mm-dd')
    这样保证不会有后面的00:00:00
      

  11.   

    使用trunc(sysdate,'dd')
    精确到天,
    使用rownum限制显示的行数
      

  12.   

    不错,用TO_DATE( date, 'YYYYMMDDHH24MISS'来试下吧
      

  13.   

    在你的循环体里面加个判断
    if(cursor%nofound) then
    exit
      

  14.   

    多打了个括号,应该为
    if cursor%nofound then exit;
    cursor是你的游标名
    我认为你是用游标做的,因为我不知道用其他办法来做