6,128
社区成员
发帖
与我相关
我的任务
分享declare @s varchar(20)
set @s='20080101121212'
select cast( stuff( stuff(stuff(@s,9,0,' '),12,0,':'),15,0,':') as datetime)
/*
------------------------------------------------------
2008-01-01 12:12:12.000
(所影响的行数为 1 行)
*/
declare @s varchar(20)
set @s='20080101121212'
select stuff(stuff(stuff(stuff(stuff(@s,5,0,'-'),8,0,'-'),11,0,' '),14,0,':'),17,0,':')
用3楼或者4楼的方法写个函数,直接调用这个函数即可.
create function f_2date(@s varchar(20))
returns datetime
as
begin
declare @rtn datetime
set @rtn=cast( stuff( stuff(stuff(@s,9,0,' '),12,0,':'),15,0,':') as datetime)
return @rtn
end
go
select dbo.f_2date('20080101121212')
go
drop function f_2date
go
-----------------------
2008-01-01 12:12:12.000
(1 行受影响)
DECLARE @s NVARCHAR(20),@stDate DATETIME
SET @s='20080101121212'
SELECT CAST((SUBSTRING(@s,1,4)+'-'+SUBSTRING(@s,5,2)+'-'+SUBSTRING(@s,7,2)+' '+
SUBSTRING(@s,9,2)+':'+SUBSTRING(@s,11,2)+':'+SUBSTRING(@s,13,2))AS DATETIME)
------------------------------------------------------
2008-01-01 12:12:12.000
(1 row(s) affected)