本帖最后由 sunset_ni 于 2013-01-25 11:16:14 编辑

解决方案 »

  1.   

    select * from  test where 1=1  and to_date(create_time,'yyyy/mm/dd') >= to_date( '2013/1/25','yyyy/mm/dd') 
      

  2.   

    直接写成select * from test where to_date(create_time,'YYYY-MM-DD')>=to_date('2013/1/23','YYYY-MM-DD')
     
      

  3.   

    to_char(create_time,'yyyy/mm/dd')是日期型转为字符型。你既然已经是字符型了,直接转换日期型就是了
    to_date(create_time,'yyyy/mm/dd')
      

  4.   

    你在where条件中写的1=1有什么用吗?我认为是没有必要的。
    create_time的格式必须是yyyy/mm/dd,你写的语句才对。
      

  5.   

    create_time 的格式是什么?这个是决定你语句是否写的对的前提
      

  6.   

    select * 
      from  test 
     where 1=1  
           and
            to_date(create_time,‘yyyy/mm/dd’) >= to_date( '2013/1/25','yyyy/mm/dd')
    你说create_time已经是varchar2类型是说create_time已经是yyyy/mm/dd格式么?
      

  7.   

    whewe 1=1可以很方便的规范语句,在没有该语句时可能出现一些问题,如代码
    string MySqlStr=”select * from table where”;
    if(Age.Text.Length>0)
      {
        MySqlStr=MySqlStr+“Age=“+“'Age.Text'“;
      }
    当没有where 1=1;且if条件为false时。该代码就成了MySqlStr=”select * from table where”,这样的话,代码不就错了嘛
      

  8.   

    naijun0101这位兄弟说的这个内容让我长了知识了,平时还真没这样写过程序,不过这样的另类思维还是很必要的,谢谢,兄弟
      

  9.   

    让人蛋疼的日期啊。
    首先的create_time可能存null吗?可能存2012/02/31这样的日期吗?
    想表达的意思其实就是你的日期不合理时你的需求应该怎样处理?
    所以说你的这SQL是有问题,一般在处理日期时你写一个日期处理函数就可以排除那些错误造成SQL语句出错的影响。
    按照你写的SQL,直接可以写成这样(在不考虑null值以及错误数据的情况下)。
    select * from  test where create_time >= '2013/1/25'