我需要把时间转换成小时
比如
'2011-1-1 01:01:00' 要转换成2011010101
注意最后是01 不是1ps:在sql server 2008中

解决方案 »

  1.   


    declare @t varchar(20);set @t='2011-1-1 01:01:00'select 
    convert(varchar(8),cast(@t as datetime),112)+
    convert(varchar(2),cast(@t as datetime),108)/*
    2011010101
    */
      

  2.   

    select  replace(replace(CONVERT(varchar(13),getdate(),120),'-',''),' ','') as time
    /*
    2011082521
    */
      

  3.   

    select left(replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':',''),10)
      

  4.   

    select left(replace(replace(replace(CONVERT(varchar, '2011-1-1 01:01:00', 120 ),'-',''),' ',''),':',''),10)
    --------------------
    2011110101(1 行受影响)
      

  5.   


    select 
    replace(replace(replace(convert(varchar(16),convert(datetime,'2011-1-1 01:01:00'),120),'-',''),':',''),' ','')/*
    201101010101
      

  6.   

    select  replace(replace(CONVERT(varchar(13),getdate(),120),'-',''),' ','')
      

  7.   


    create table test0825(col varchar(20))
    insert into test0825 select '2011-1-1 01:01:00'
    go 1000select 
    convert(varchar(8),cast(col as datetime),112)+
    convert(varchar(2),cast(col as datetime),108) from test0825select 
    replace(replace(convert(varchar(13),cast(col as datetime),120),'-',''),' ','')
    from test0825select left(replace(replace(replace
    (convert(varchar,col, 120 ),'-',''),' ',''),':',''),10) 
    from test0825--1000数据量测试,开销相同1:1:1
      

  8.   

    --日期转换参数,值得收藏
    select CONVERT(varchar, getdate(), 120 )
    2004-09-12 11:06:08select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
    20040912110608select CONVERT(varchar(12) , getdate(), 111 )
    2004/09/12select CONVERT(varchar(12) , getdate(), 112 )
    20040912select CONVERT(varchar(12) , getdate(), 102 )
    2004.09.12其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )
    09/12/2004select CONVERT(varchar(12) , getdate(), 103 )
    12/09/2004select CONVERT(varchar(12) , getdate(), 104 )
    12.09.2004select CONVERT(varchar(12) , getdate(), 105 )
    12-09-2004select CONVERT(varchar(12) , getdate(), 106 )
    12 09 2004select CONVERT(varchar(12) , getdate(), 107 )
    09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )
    11:06:08select CONVERT(varchar(12) , getdate(), 109 )
    09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 )
    09-12-2004select CONVERT(varchar(12) , getdate(), 113 )
    12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 )
    11:06:08.177
      

  9.   

    我用一百万的数据量测试了一下select 
    convert(varchar(8),cast(col as datetime),112)+
    convert(varchar(2),cast(col as datetime),108) from test0825
    这个是最快的。比其他要快几秒钟