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