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

来源:百度知道 编辑:UC知道 时间:2024/05/02 07:46:52
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

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

不能直接转换
先转换成 20091014 19:13:38 的形式,再cast

select cast(stuff(stuff(stuff('20091014191338',9,0,' ' ),12,0,':'),15,0,':') as datetime)

好像不能直接转吧~~
拆分你的字符串:
SELECT CONVERT(char(10),CAST( LEFT('20091014191338',8) AS datetime ),121) + ' '+SUBSTRING('20091014191338',9,2) + ':'+RIGHT('20091014191338',2) + ':00.000'

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)

select convert(datetime,'2009.10.14 19:13:38')

使用convert函数