有表名,笔误!!有问题的应该是下面这个sql = "select count(*) from table where xq  < "+d_today.toString() + " + "+String.valueOf(i_val);

解决方案 »

  1.   

    xq 字段类型是?i_val 可能的值是什么?
    ---===>一个不会问问题的人.
      

  2.   

    你都把d_today做了toString了还加什么数值啊,哪能行吗
      

  3.   

    真急人!!!我详细解释一下
    sql = "select count(*) from table where xq  < "+d_today.toString() + " + "+String.valueOf(i_val);xq  是date 类型的字段
    d_taoday 是date型的变量
    i_val是整形数据用来表示天数
      

  4.   

    不可以这样直接比较。
    d_today.toString() 的格式是Tue Sep 14 11:36:25 CST 2004无论你表中的date_column 是什么类型的,都不可能和上边的东西进行比较的。
      

  5.   

    那要实现查询date_column 小于d_today 加上 i_val 天的记录sql应该怎么写!!???
      

  6.   

    DATEADD(day, 21, pubdate)
    第一个变量代表日期的某一部分
    第二个变量指定了时间的间隔
    最后一个变量是一个日期
      

  7.   

    Oracle好像应该这样写吧:
    sql = "select count(*) from table where xq  < to_date("+d_today.toString() + ") + "+String.valueOf(i_val);
      

  8.   

    错了,应该是:
    sql = "select count(*) from table where xq  < to_date('"+d_today.toString() + "','yyyy-mm-dd') + "+String.valueOf(i_val);
      

  9.   

    真急人!!!我详细解释一下
    sql = "select count(*) from table where xq  < "+d_today.toString() + " + "+String.valueOf(i_val);xq  是date 类型的字段
    d_taoday 是date型的变量
    i_val是整形数据用来表示天数sql = "select count(*) from table where xq < to_date('"+d_today.toString()+"','yyyy-mm-dd hh24:mi:ss')+"+i_val;
    应该这样写,oracle日期的对比需要用to_date函数转换字符到date类型后才能比较,
    yyyy 年
    mm   月
    dd   日
    hh24 小时(24小时制)
    mi    分
    ss   秒
    -和:是分隔符
    看你的d_today.toString()出来的格式啥样,你的to_date()中日期格式就啥样的写
      

  10.   

    select * from tzd
    where create_date<to_date('2001-08-01','yyyy-mm-dd')+3在数据库中,这条语句是可以执行的
    所以是:
    sql = "select count(*) from table where xq  < to_date('"+d_today.toString() + "','yyyy-mm-dd') + "+String.valueOf(i_val);我猜yyyy-mm-dd是你的字符串中日期的格式,所以请注意!
      

  11.   

    d_today.toString() 可不是'yyyy-mm-dd'这个样子的,我用的是oracle 
    不过已经很不错了
      

  12.   

    你试一下:
    insert into test(d_today) values(to_date('2004-09-15','yyyy-mm-dd'));
    看下ORACLE里面是什么样子的。
      

  13.   

    你可以按照你的样子写啊 比如21/01/2004 就是dd/mm/yyyy
      

  14.   

    笨,笨,笨,看得我郁闷死了。记住了,以后凡是要用date类型的数据,全部都用varchar代替,oracle里不要用date,datetime,timestep这样的数据类型。以后数据多了,你就知道我为什么这么说了。!!!
                                           --一个老人。