日期:2014-05-17  浏览次数:20427 次

char(14) 字符串 转换为 时间类型 ??????
sql server2000 

如 例 char(14) 变量@a ='20120907112032' --代表2012年9月7号11点20分32秒
想把 这个变量插入 数据库一字段 该字段类型为 datetime 该类型例子【2012-09-07 11:20:30.000】
 
 

求 转换 方法???

------解决方案--------------------
SQL code

DECLARE @a varchar(14) ='20120907112032'
SELECT CONVERT(datetime,SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'+SUBSTRING(@a,7,2)+' '+SUBSTRING(@a,9,2)+':'+SUBSTRING(@a,11,2)+':'+SUBSTRING(@a,13,2))

------解决方案--------------------
SQL code
declare @a char(14)
declare @aa varchar(25)

set @a='20120907112032'
set @aa=left(@a,4)+'-'+right(left(@a,6),2)+'-'+right(left(@a,8),2)+' '+right(left(@a,10),2)+':'+right(left(@a,12),2)+':'+right(@a,2)+'.000'

select cast(@aa as datetime) as '时间'

/*
-->测试结果
时间                          
--------------------------- 
2012-09-07 11:20:32.000

*/

------解决方案--------------------
SQL code
DECLARE @a varchar(14) ='20120907112032'
SELECT CONVERT(datetime,SUBSTRING(@a,1,4)+'-'+SUBSTRING(@a,5,2)+'-'
+SUBSTRING(@a,7,2)+' '+SUBSTRING(@a,9,2)+':'+SUBSTRING(@a,11,2)+
':'+SUBSTRING(@a,13,2))
------------------------------
/*
无列名
2012-09-07 11:20:32.000
*/

------解决方案--------------------
SQL code

declare @a char(14)
set @a='20120907112032'
select convert(varchar(10),convert(datetime,left(@a,8)),120)
    +' '+SUBSTRING(@a,9,2)+':'+SUBSTRING(@a,11,2)+':'+SUBSTRING(@a,13,2)
/*
2012-09-07 11:20:32
*/

------解决方案--------------------
探讨
SQL code

declare @a char(14)
set @a='20120907112032'
select convert(varchar(10),convert(datetime,left(@a,8)),120)
+' '+SUBSTRING(@a,9,2)+':'+SUBSTRING(@a,11,2)+':'+SUBSTRING(@a,13,2)
/*
20……

------解决方案--------------------
尝试了函数直接转换,没成功。
------解决方案--------------------
探讨

尝试了函数直接转换,没成功。