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

舞台中央的我 2012-09-07 11:21:12
sql server2000

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



求 转换 方法???
...全文
178 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

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
*/


以学习为目的 2012-09-07
  • 打赏
  • 举报
回复
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
*/

  • 打赏
  • 举报
回复
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

*/
發糞塗牆 2012-09-07
  • 打赏
  • 举报
回复

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
舞台中央的我 2012-09-07
  • 打赏
  • 举报
回复
学习了 谢谢
汤姆克鲁斯 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

尝试了函数直接转换,没成功。
[/Quote]
当然了 这不是有效地日期时间格式,所以不能
yy1987316 2012-09-07
  • 打赏
  • 举报
回复
尝试了函数直接转换,没成功。
无涯大者 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
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……
[/Quote]
up.只能通过截取字段了。

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧