Sql server 将格式为d.m.yyyy的varchar转换为smalldatetime

Sql server 将格式为d.m.yyyy的varchar转换为smalldatetime,sql-server,tsql,Sql Server,Tsql,我有varchar列,列中的值格式为d.m.yyyy,因此日期可能是2014年2月2日或2014年11月11日 我需要从这个varchar列更新smalldatetime列 我所有的尝试都以错误消息结束: 将varchar数据类型转换为smalldatetime数据类型导致值超出范围 如何做到这一点?这是有效的解决方案 UPDATE tTable SET dDate = CONVERT(SMALLDATETIME, CONVERT(SMALLDATETIME, vDate, 104), 20)

我有
varchar
列,列中的值格式为
d.m.yyyy
,因此日期可能是2014年2月2日或2014年11月11日

我需要从这个
varchar
列更新
smalldatetime

我所有的尝试都以错误消息结束:

将varchar数据类型转换为smalldatetime数据类型导致值超出范围


如何做到这一点?

这是有效的解决方案

UPDATE tTable
SET dDate = CONVERT(SMALLDATETIME, CONVERT(SMALLDATETIME, vDate, 104), 20)

你能告诉我们你用来转换的sql吗?此外,请查看源数据,以查找具有错误值的异常行。