declare  @volTime     varchar(50)       --获取时间,格式应为:2011-03-16 12:15:00
declare  @date_from  smalldatetime --开始日期变量
declare  @date_to           smalldatetime --结束日期变量set @date_from='2010-01-01' --为开始日期赋值
set @date_to='2011-06-27' --为结束日期赋值
set @volTime=convert(varchar,(@date_from +(ABS(CAST(CAST(NewID() AS BINARY(8))AS INT))%CAST((@date_to - @date_from) AS INT))),120)           --获取随机年月日,格式:2011-03-16 00:00:00
set @volTime=DATEADD(second,ABS(CAST(CAST(NewID() AS BINARY(2)) AS INT)),@volTime) 
                                     --增加时间秒,但格式变成了:16 03 2011 5:43PM请问:如何把增加时间秒后的格式:16 03 2011 5:43PM转换成我需要的格式:2011-03-16 5:43:00

解决方案 »

  1.   

    declare @volTime varchar(50) --获取时间,格式应为:2011-03-16 12:15:00
    declare @date_from smalldatetime --开始日期变量
    declare @date_to smalldatetime --结束日期变量set @date_from='2010-01-01' --为开始日期赋值
    set @date_to='2011-06-27' --为结束日期赋值
    set @volTime=convert(varchar,(@date_from +(ABS(CAST(CAST(NewID() AS BINARY(8))AS INT))%CAST((@date_to - @date_from) AS INT))),120) --获取随机年月日,格式:2011-03-16 00:00:00
    select @volTime
    set @volTime=convert(varchar(20),DATEADD(second,ABS(CAST(CAST(NewID() AS BINARY(2)) AS INT)),@volTime),120) 
     
    select @volTime
      

  2.   


    declare @volTime varchar(50) 
    --获取时间,格式应为:2011-03-16 12:15:00declare @date_from smalldatetime 
    --开始日期变量declare @date_to smalldatetime 
    --结束日期变量set @date_from='2010-01-01' 
    --为开始日期赋值set @date_to='2011-06-27' 
    --为结束日期赋值set @volTime=convert(varchar,(@date_from +
    (ABS(CAST(CAST(NewID() AS BINARY(8))AS INT))%
    CAST((@date_to - @date_from) AS INT))),120)
     
    --获取随机年月日,格式:2011-03-16 00:00:00
    select @volTimeset @volTime=convert(varchar(20),
    DATEADD(second,ABS(CAST(CAST(NewID() AS BINARY(2)) AS INT)),@volTime),120) 
    select @volTime
    /*
    2011-04-18 00:00:00
    2011-04-18 15:37:47
    */结果格式正确呀?
      

  3.   


    declare @volTime varchar(50) --获取时间,格式应为:2011-03-16 12:15:00
    declare @date_from smalldatetime --开始日期变量
    declare @date_to smalldatetime --结束日期变量set @date_from='2010-01-01' --为开始日期赋值
    set @date_to='2011-06-27' --为结束日期赋值
    set @volTime=convert(varchar,(@date_from +(ABS(CAST(CAST(NewID() AS BINARY(8))AS INT))%CAST((@date_to - @date_from) AS INT))),120); --获取随机年月日,格式:2011-03-16 00:00:00set @volTime=CONVERT(varchar(25),DATEADD(S,ABS(CAST(CAST(NewID() AS BINARY(2)) AS INT)),@volTime),121)  
    SELECT @volTime
      

  4.   

    谢谢,受用了,问题解决。有个疑问:
    set @volTime=DATEADD(second,ABS(CAST(CAST(NewID() AS BINARY(2)) AS INT)),@volTime)
    set @volTime=convert(varchar,@volTime,120)为什么写成以上不行?set @volTime=CONVERT(varchar(25),DATEADD(S,ABS(CAST(CAST(NewID() AS BINARY(2)) AS INT)),@volTime),120) 有什么区别?