1
我有一个字符串字段dob具有各种格式的birthdates,例如在SQL中标准化日期。算术溢出
DOB
1945年7月1日
1967年1月7日
13 1956年5月
8 1947年5月
1953年9月27日
1952年3月25日
我有试图使用MS SQL 2005创建标准化日期字段
select convert(datetime,dob,103)
from myTable
我得到算术溢出似乎与最后一个值相关联,大概是因为它试图将25转换为一个月,当它是一天 我试过 设置语言英国和其他各种风格没有成功
有什么建议吗?
感谢。我认为问题在于103风格。但是,当我将它应用到整个表格时,我仍然遇到同样的错误。只有单一年,空值和空白似乎不会造成问题。无论如何,SQL可以识别导致错误的行,以便我可以修复/排除它们 – pssguy
容易但不保证工作的解决方案是添加一个where子句,如WHERE ISDATE( T.dob)> 0' Aaron Bertrand对我的类似[问题]有一个很好的解释+方法(http://dba.stackexchange.com/questions/5312/conversion-of-varchar-data-to-datetime-failing) – billinkc
谢谢我刚到达相同的解决方案! – pssguy