现有一个数据库CKM_SM_MESSAGETHIRD  里面有三个字段 ISSENT(默认值为5) ,LINKURL(默认值为5),SETSENDTIME(插入数据库的时间为varchar,格式为例如:2008-06-12 18:24:19)现在要的作业是这样,拿服务器的时间和数据库利的时间SETSENDTIME 做比较,如果服务器的时间大于数据库利字段的时间 并且将含条件LINKURL(默认值为5)的值的ISSENT(默认值为5改成0) ,LINKURL(默认值为5改成6),

解决方案 »

  1.   

    update  CKM_SM_MESSAGETHIRD   set  LINKURL= 5,ISSENT = 0,LINKURL =6
          where   datediff(ss,SETSENDTIME,getdate())> 0
      

  2.   

    if LINKURL <> 5 then
        update  CKM_SM_MESSAGETHIRD  set  LINKURL= 5,ISSENT = 0,LINKURL =6 
        where  datediff(ss,SETSENDTIME,getdate())> 0
    endif
      

  3.   

    if LINKURL <> 5 then 
        update  CKM_SM_MESSAGETHIRD  set  LINKURL= 5,ISSENT = 0,LINKURL =6 
        where  datediff(ss,getdate(),SETSENDTIME)> 0 
    endif
      

  4.   

    这样写可以不
    update  CKM_SM_MESSAGETHIRD  set  ISSENT = '0',LINKURL ='6' where  datediff(ss,getdate(),SETSENDTIME)> 0 and LINKURL='5'
      

  5.   

    上面错误是因为数据库的时间为varchar型的
    declare @tb table(ISSENT int,LINKURL int, SETSENDTIME varchar(50))
    Insert @tb
    select 5,5,'2008-06-12 18:24:19'update @tb set ISSENT=0,LINKURL=6
    where SETSENDTIME<getdate() and LINKURL='5'
      

  6.   

    update  CKM_SM_MESSAGETHIRD  set  ISSENT = '0',LINKURL ='6' where  datediff(ss,getdate(),SETSENDTIME)> 0 and LINKURL='5'