数据库里面日期是8位的String类型,现在要做时间段查询,接收两个Date类型的日期,SQL语句怎么写,能进行日期转换并进行比较,新手求指导!

解决方案 »

  1.   

    select * from table1 t1  where t1.time>=to_char( '{0}' ,'yyyyMMdd') and  t1.time<=to_char( '{1}' ,'yyyyMMdd'){0} 开始时间
    {1} 结束时间'yyyyMMdd' 是你数据库保存的日期格式:如 20120712
    'yyyy-MM-dd' 是你数据库保存的日期格式:如 2012-07-12不知道 这样解释 你明白不
      

  2.   

    数据库里面保存的是String类型的,t1.time是String类型的,能直接比较么?
      

  3.   

    把日期区间转换成yyyymmdd格式直接比较就可以了吧
      

  4.   

    TO_CHAR() 和TO_DATE() 都可以的.
      

  5.   


    1)将你传入的值经过to_char(传入DATE类型,'yyyymmdd')转换,与数据库里面的数据进行比较。
    2)将你保存的值经过to_date(数据库字段,'yyyymmdd'),转换,变为varchar2类型进行比较。如果采用第一种方式,可以再套上to_number转换成数字进行比较。