SQL:如何将nvarchar转换为日期

SQL:如何将nvarchar转换为日期,sql,sql-server,string,datetime,Sql,Sql Server,String,Datetime,我无法将nvarchar(4000)转换为date(103) 我试过: select convert(date,[column1],103) from #temptable select convert(datetime,[column1],103) from #temptable select cast([column1] as date) from #temptable select cast([column1] as datetime) from #temptable select ca

我无法将
nvarchar(4000)
转换为
date(103)

我试过:

select convert(date,[column1],103) from #temptable
select convert(datetime,[column1],103) from #temptable
select cast([column1] as date) from #temptable
select cast([column1] as datetime) from #temptable

select cast(convert(char,[column1],8) as datetime) from #temptable
select cast(convert(float,[column1]) as datetime) from #temptable
我的专栏1包含700000个不同的日期,它们看起来是20200309(yyyymmdd)

他们都给了我同样的错误信息:

将数据类型nvarchar转换为浮点时出错

从字符串转换日期和/或时间时,转换失败


提前感谢大家。

yyyymmdd
对于SQL Server来说是一种安全且明确的日期格式,因此这应该可以:

convert(date, column1)
出现错误的事实表明数据格式错误。您可以使用
try\u convert()
显示有问题的值,如下所示:

select column1
from #temptable
where column1 is not null and try_convert(date, column1) is null

SELECT CONVERT(DATE, [column1], 103) FROM #temptable
SELECT CONVERT(DATETIME, [column1], 103) FROM #temptable