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
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
*/
/*
2011082521
*/
--------------------
2011110101(1 行受影响)
select
replace(replace(replace(convert(varchar(16),convert(datetime,'2011-1-1 01:01:00'),120),'-',''),':',''),' ','')/*
201101010101
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
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
convert(varchar(8),cast(col as datetime),112)+
convert(varchar(2),cast(col as datetime),108) from test0825
这个是最快的。比其他要快几秒钟