select a.KaHao,b.mingma from Tbl_checkIn a,tbl_ShouPiao b where a.KaHao=b.kahao and CheckInTime between '2010-9-17' and '2010-9-20' and mingma>='1214' and mingma<='1218'
各位高手,上面是多表查询写的语句,然后查出来结果想要修改日期为9月30日,如上图的日期格式,下面语句CheckInTime的写法对吗?update a set CheckInTime='2010-9-30' from Tbl_checkIn a,tbl_ShouPiao b where a.KaHao=b.kahao and CheckInTime between '2010-9-17' and '2010-9-20' and mingma>='1214' and mingma<='1218'

解决方案 »

  1.   

    第一个查询语句没有CheckInTime列啊
      

  2.   

    update a set CheckInTime='2010-9-30' from Tbl_checkIn a,tbl_ShouPiao b where a.KaHao=b.kahao and CheckInTime between '2010-9-17' and '2010-9-20' and mingma>='1214' and mingma<='1218'
    ----
    修改日期为9月30日,按我的理解就不对,仅仅是改日期,并不需要改时间,而上面的语句将所有的时间打到0点。
      

  3.   

    update a set CheckInTime=dateadd(day, datediff(day,CheckInTime,'2010-9-30'), CheckInTime)
    from Tbl_checkIn a,tbl_ShouPiao b where a.KaHao=b.kahao and CheckInTime between '2010-9-17' and '2010-9-20' and mingma>='1214' and mingma<='1218'
      

  4.   

    UPDATE a
    SET CheckInTime='2010-9-30'
    FROM Tbl_checkIn a,tbl_ShouPiao b 
    where a.KaHao=b.kahao 
    and CheckInTime between '2010-9-17' and '2010-9-20' 
    and mingma>='1214' and mingma<='1218'
      

  5.   


    with update_test as
    (
      select a.KaHao,b.mingma,CheckInTime,
             newtime=(datetime,'2010-09-30+convert(char(12),CheckInTime,114),120)
      from Tbl_checkIn a
        inner join tbl_ShouPiao b
        on  a.KaHao=b.kahao 
      where CheckInTime between '2010-9-17' 
        and '2010-9-20' and mingma>='1214' and mingma<='1218';
    )
    update update_test
    set CheckInTime =newtime;
      

  6.   


    with update_test as
    (
      select a.KaHao,b.mingma,CheckInTime,
             newtime=(datetime,'2010-09-30'+convert(char(12),CheckInTime,114),120)
      from Tbl_checkIn a
        inner join tbl_ShouPiao b
        on  a.KaHao=b.kahao 
      where CheckInTime between '2010-9-17' 
        and '2010-9-20' and mingma>='1214' and mingma<='1218';
    )
    update update_test
    set CheckInTime =newtime;
      

  7.   


    with update_test as
    (
      select a.KaHao,b.mingma,CheckInTime,
             newtime=convert(datetime,'2010-09-30'+convert(char(12),CheckInTime,114),120)
      from Tbl_checkIn a
        inner join tbl_ShouPiao b
        on  a.KaHao=b.kahao 
      where CheckInTime between '2010-9-17' 
        and '2010-9-20' and mingma>='1214' and mingma<='1218';
    )
    update update_test
    set CheckInTime =newtime;
    --不好意思 让大家看笑话了 呵呵