create table ljwjk.info_lj_taizhang
(
JH varchar(40),
SBSJ varchar(40)
)
insert into test1 select '夏461','2010-08-15'
insert into test1 select '义97-斜18','2008-08-25'create table ljwjk.lj_taizhang
(
JH varchar(10),
SBRQ DATE
)
insert into test2 select '夏461',' '
insert into test2 select '义97-斜18',' '报表对应的字段内容如下:
表1:ljwjk.info_lj_taizhang
  JH         SBSJ          JH          SBSJ
夏461   2010-08-15     义97-斜18  2008-08-25
表2:ljwjk.lj_taizhang
JH       SBRQ              JH         SBRQ
夏461                   义97-斜18
如果这两个表的井号相同,就把表ljwjk.lj_taizhang中SBRQ为空的被ljwjk.info_lj_taizhang
表的SBSJ所替换,注意要替换表ljwjk.lj_taizhang中SBRQ!sbsj的格式是YYYY-MM-DD SBRQ的格式是YYYY-MM-DD HH::MM::NN,sbrq格式中带有年月日和时分秒,如何按这两种格式进行转换?   
所写语句:
update ljwjk.lj_taizhang set sbrq=(select distinct sbsj from ljwjk.info_lj_taizhang,ljwjk.lj_taizhang where info_lj_taizhang.jh=lj_taizhang.jh) where sbrq is null;
select distinct sbsj from ljwjk.info_lj_taizhang,ljwjk.lj_taizhang where info_lj_taizhang.jh=lj_taizhang.jh;   
我写的update语句中的select语句可以执行,一加上update就不执行;sbsj的格式是YYYY-MM-DD SBRQ的格式是YYYY-MM-DD HH::MM::NN,sbsj和sbrq如何按这两种格式转换? 

解决方案 »

  1.   

    如将sbsj设得是字符型,但格式是日期YYYY-MM-DD的格式,如转换成date型,就不执行,转换形式我这栏写的,to date (sbsj,YYYY-MM-DD HH::MM::NN ,如写成这样,语句还是不执行,急求大家帮忙
      

  2.   

    update ljwjk.lj_taizhang set sbrq=(select distinct sbsj from ljwjk.info_lj_taizhang,ljwjk.lj_taizhang where info_lj_taizhang.jh=lj_taizhang.jh) where sbrq='';
      

  3.   

    关键是sbsj和sbrq格式不统一,格式转换的问题,您写的跟我写的是一样的,
      

  4.   

    update ljwjk.lj_taizhang set sbrq = to_date((select sbsj from ljwjk.info_lj_taizhang where ljwjk.info_lj_taizhang.jh=ljwjk.lj_taizhang.jh),'yyyy-mm-dd hh24:mi:ss') where sbrq is null;
      

  5.   

    create table TestA
    (
    JH varchar(40),
    SBSJ varchar(40)
    )
    insert into TestA values('夏461','2010-08-15')
    insert into TestA values('义97-斜18','2008-08-25')create table testB
    (
    JH varchar(10),
    SBRQ DATE
    )
    insert into testB values('夏461','');
    insert into testB values('义97-斜18','')select * from testaselect * from testbupdate testb set testb.sbrq=(select to_date(a.sbsj) as sj from testa a ,testb b where a.jh=b.jh and b.sbrq is null and testb.jh=a.jh)