字段“rq”是DATE格式,用来存储日期是yyyy-MM-dd 。字段“cjsj”是VARCHAR2(5)格式,用来存储小时值,如8时的值为8:00。
合并“rq”和“cjsj”这两个字段,当需要转换0点的数据如rq:2012-9-5 cjsj:0:00,就是:2012-9-5日零时,为什么用to_char(rq,'yyyy-MM-dd') ||' ' || cjsj || ':00',可以显示零时
用to_date(to_char(rq,'yyyy-MM-dd ') || cjsj || ':00','yyyy-MM-dd HH24:MI:SS'),就转换不了呢?不是零时的可以。当rq是2012-9-5,cjsj是8:00,转换后为:2012-9-5 8:00:00
当rq是2012-9-5,cjsj是0:00,转换后为:2012-9-5我是想用 where to_date(to_char(rq,'yyyy-MM-dd') ||' ' || cjsj,'yyyy-MM-dd HH24:MI:SS')>=to_date(sysdate)
这个语句做判断。

解决方案 »

  1.   


    应该也是可以的,比如:
    sys@ORCL1> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';Session altered.sys@ORCL1> select
      2  to_date(to_char(sysdate,'yyyy-MM-dd ') || '0:00' || ':00','yyyy-MM-dd HH24:MI:SS')
      3  from dual;TO_DATE(TO_CHAR(SYS
    -------------------
    2012-09-05 00:00:00我怀疑只是个显示问题,你直接到sqlplus里面执行下看看呢?所以你那个判断语句是不会有问题的。
      

  2.   

    alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
    是临时修改时间格式么?