比如:
select * from A where fd_date > '2013-10-21'
以前我这个是可以直接搜出来日期大于2013-10-21的数据的,但重装系统之后就不可以了~、
请问是哪里出了问题?是要修改注册表什么的吗?

解决方案 »

  1.   

    fd_date如果是时间日期类型,
    则select * from A where fd_date > to_date('2013-10-21','yyyy-mm-dd');
    如果是字符串,
    则select * from A where fd_date > to_char('2013-10-21','yyyy-mm-dd')
      

  2.   

    没有啊!我fd_date是date类型,我以前根本不需要加to_date,直接>'2013-10-21'就可以了,我貌似记得是要改个注册表什么的
      

  3.   

    有关系,我重做之前没事啊
    “fd_date > '2013-10-21' ” fd_date是date类型,你不加to_date?
    楼主觉得date类型和字符类型能一样吗?建议如下方法:fd_date > to_date('2013-10-21','yyyy-mm-dd');
      

  4.   

    有关系,我重做之前没事啊
    “fd_date > '2013-10-21' ” fd_date是date类型,你不加to_date?
    楼主觉得date类型和字符类型能一样吗?建议如下方法:fd_date > to_date('2013-10-21','yyyy-mm-dd');

    额,我也不知道怎么搞的,反正以前就是能啊~算了,看来现在也只能这么用了多谢
      

  5.   

    fd_date>to_date('2013-10-21','YYYY-MM-DD')
      

  6.   

    暂时没听过可以改注册表 能够自动转换成时间格式的 如果要简写比较 直接用date转换 fd_date > date'2013-10-21' 
      

  7.   

    还是先转换为data类型进行比较吧
      

  8.   

    date 跟 string 类型转化下就好了
      

  9.   

    select * from A where fd_date > to_date('2013-10-21','yyyy-mm-dd');还是建议用这个、
      

  10.   

    应该是你系统时间格式和你缩写的比较的值不一样吧。select * from table where to_char(column,'YYYYMMDD')>'20131022'
      

  11.   

    设置一下session的日期格式alter session set nls_date_format='yyyy/mm/dd',或者修改数据库的日期格式(不建议,除非是初装,没有业务数据),改成你想要的就可以。你两次装的oracle默认的日期格式应该不同。虽然这个日期格式可以修改,但是还是建议在使用date类型数据的时候,用to_date函数格式化一下,否则数据在数据库的日期格式变化后,很容易出问题。
      

  12.   

    设置成yyyy-mm-dd,刚才敲错了。要是yyyy/mm/dd,那你应该用‘2013/09/23’这种格式查。