update TTime set T2=convert(char(10),T1,120)+convret(char(10),T2,108)

解决方案 »

  1.   

    update TTime set T2=cast(convert(char(10),T1,120)+' '+convret(char(10),T2,108) as datetime)
      

  2.   

    建立函数
    create function getYMD(@date datetime)
    returns char(10)
    as
    begin
    declare @a char(4),@b char(2),@c char(2),@d char(10)
    set @a=year(@date)
    set @b=month(@date)
    set @c=day(@date)
    set @d=@a+'-'+@b+'-'+@c
    return(@d)
    endcreate function getHMS(@date datetime)
    returns char(12)
    as
    begin
    declare @a char(2),@b char(2),@c char(2),@e char(3),@d char(12)
    set @a=datename(hour,@date)
    set @b=datename(minute,@date)
    set @c=datename(second,@date)
    set @e=datename(millisecond,@date)
    set @d=@a+':'+@b+':'+@c+'.'+@e
    return(@d)
    endcreate table ttime
    (T1 datetime,T2 datetime)
    insert ttime values('2004-12-14 19:30:21.000' ,'2004-12-13 21:30:21.000')select * from ttime 
    update ttime set  t2=当前数据库.dbo.getHMS(t2)+' '+当前数据库.dbo.getYMD(t1)  where t1='2004-12-14 19:30:21.000'
    select * from ttime
      

  3.   

    update TTime set T2=convert(char(10),T1,120)+convret(char(10),T2,108)
      

  4.   

    convert与cast一样,,就是相互转换数据类型,,120是odbc规范,,,是时间类型的,即是
    yyyy-mm-dd hh:mm:ss[.fff],
    而char(10)是把时间类型的前10个转换卫char类型,,,后面的108是time类型的,,机hh:mm:ss
    我想是T2可以隐式的把char类型转换为datetime类型的把,,
    所以久可以了,,,,,最后看一下sql查询分析器的帮助吧,,那里更加详细