ddmmyyyy到SQL中的sql datetime

use*_*886 3 sql sql-server

我需要将nvarchar值转换为datetimeT-SQL.值的ddmmyyyy格式为,例如23072009

我需要转换为datetimeT-SQL.

我试过了

select convert(datetime, '23072009', 103)
Run Code Online (Sandbox Code Playgroud)

但这是在抛出错误.

"将nvarchar数据类型转换为日期时间数据类型会导致超出范围的值."

任何的想法

谢谢

Mik*_*son 6

将您的格式重建为yyyymmdd.

declare @D varchar(8)
set @D = '23072009'

select cast(right(@D, 4)+substring(@D, 3, 2)+left(@D, 2) as datetime)
Run Code Online (Sandbox Code Playgroud)


Mad*_*nan 6

样式 103 将接受 dd/mm/yyyy 格式的字符串。所以你的代码应该是

declare @date varchar(8)
set @date='23072009'
select convert(datetime,stuff(stuff(@date,5,0,'/'),3,0,'/')  , 103) 
Run Code Online (Sandbox Code Playgroud)