?表中的日期的数据类型是8位的decimal类型。怎么可能呢?

解决方案 »

  1.   

    --例子:
    declare @a decimal(8,0),@b datetime
    set @a='20040101'set @b=convert(datetime,cast(@a as varchar(8)),112)
    select 结果=@b
      

  2.   

    insert into b(num)values(cast(convert(char(8),getdate(),112) as decimal(8,0)))
      

  3.   

    --加上时间declare @a decimal(8,0),@b datetime
    set @a='20040101'set @b=convert(datetime,cast(@a as varchar(8))+' 12:30:00',112)
    select 结果=@b
      

  4.   

    后一个答案才对insert 的时候系统会自动转换成数字型
      

  5.   

    如:
    select cast(replace(convert(varchar(10),getdate(),120),'-','') as decimal)
      

  6.   

    谢谢各位, 解决了。
     lynx1111(任我行:CrazyEnglishing) 的方法就可以了。
      

  7.   

    --就是这个转换方法嘛
    select convert(datetime,cast(你要转换的值,varchar(8)),112)--例子:
    declare @a decimal(8,0),@b datetime
    set @a=20040101set @b=convert(datetime,cast(@a as varchar(8)),112)
    select 结果=@b
    --加上时间declare @a decimal(8,0),@b datetime
    set @a=20040101set @b=convert(datetime,cast(@a as varchar(8))+' 12:30:00',112)
    select 结果=@b
      

  8.   

    说明一下,如果直接直接convert(int,getdate())会返回系统时间的内部表示值如今天是37966。
      

  9.   

    select cast(convert(varchar(8),getdate() ,112) as decimal)
      

  10.   

    to:zjcxc(邹建)
    呵呵, 看到了, 谢谢各位。送分
      

  11.   

    to:zjcxc(邹建)
    呵呵, 看到了, 谢谢各位。送分
      

  12.   

    to:zjcxc(邹建)
    呵呵, 看到了, 谢谢各位。送分