SQL server cast () 字符串转换成时间的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL server cast () 字符串转换成时间的问题相关的知识,希望对你有一定的参考价值。

SQL server 中cast()函数, 把字符串
'20091014191338'
转换成时间的时候:
select cast('20091014191338' as datetime)
报错:
Error: com.microsoft.sqlserver.jdbc.SQLServerException: Syntax error converting datetime from character string., SQL State: S0001, Error Code: 241

请问如何解决呢? 谢谢~!

参考技术A 不能直接转换
先转换成 20091014 19:13:38 的形式,再cast

select cast(stuff(stuff(stuff('20091014191338',9,0,' ' ),12,0,':'),15,0,':') as datetime)本回答被提问者采纳
参考技术B DECLARE @SDate char(14),@YMD CHAR(10),@H CHAR(2),@M CHAR(2),@S CHAR(2)
SET @SDate='20091014191338'
SELECT @YMD = CONVERT(CHAR(10),CONVERT(Datetime,SUBSTRING(@SDate,1,8)),121),
@H = SUBSTRING(@SDate,9,2),
@M = SUBSTRING(@SDate,11,2),
@S = SUBSTRING(@SDate,13,2)
SELECT @YMD+' '+@H+':'+@M+':'+@S, --年月日+小时+分+秒
CONVERT(Datetime,@YMD+' '+@H+':'+@M+':'+@S)
参考技术C 好像不能直接转吧~~
拆分你的字符串:
SELECT CONVERT(char(10),CAST( LEFT('20091014191338',8) AS datetime ),121) + ' '+SUBSTRING('20091014191338',9,2) + ':'+RIGHT('20091014191338',2) + ':00.000'
参考技术D select convert(datetime,'2009.10.14 19:13:38') 第5个回答  2009-11-02 使用convert函数

以上是关于SQL server cast () 字符串转换成时间的问题的主要内容,如果未能解决你的问题,请参考以下文章

sql server如何把整型字段转换成字符串型字段?

sqlserver 如何把查出来的日期变成字符串格式

SQL SERVER中强制类型转换cast和convert的区别

SQL SERVER中强制类型转换cast和convert的区别

SQL server类型转换

SQL SERVER中强制类型转换cast和convert的区别