34,590
社区成员
发帖
与我相关
我的任务
分享
select
convert(varchar(8),cast(col as datetime),112)+
convert(varchar(2),cast(col as datetime),108) from test0825
--日期转换参数,值得收藏
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
其它我不常用的日期格式转换方法:
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004
select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004
select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004
select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004
select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1
select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004
select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1
select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
create table test0825(col varchar(20))
insert into test0825 select '2011-1-1 01:01:00'
go 1000
select
convert(varchar(8),cast(col as datetime),112)+
convert(varchar(2),cast(col as datetime),108) from test0825
select
replace(replace(convert(varchar(13),cast(col as datetime),120),'-',''),' ','')
from test0825
select left(replace(replace(replace
(convert(varchar,col, 120 ),'-',''),' ',''),':',''),10)
from test0825
--1000数据量测试,开销相同1:1:1
select replace(replace(CONVERT(varchar(13),getdate(),120),'-',''),' ','')
select
replace(replace(replace(convert(varchar(16),convert(datetime,'2011-1-1 01:01:00'),120),'-',''),':',''),' ','')
/*
201101010101
select left(replace(replace(replace(CONVERT(varchar, '2011-1-1 01:01:00', 120 ),'-',''),' ',''),':',''),10)
--------------------
2011110101
(1 行受影响)
select left(replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':',''),10)
select replace(replace(CONVERT(varchar(13),getdate(),120),'-',''),' ','') as time
/*
2011082521
*/
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
*/