我试图将数据从一个表插入到另一个表中,第一个表是varchar,第二个表是日期。
我知道convert,几乎每一行(在varchar表中)都有正确的格式。但有些人错了。
我有70000行,如果我尝试插入所有行,就会得到一个错误:“varchar数据类型到日期时间数据类型的转换导致了一个超出范围的值。”可能是因为一个月30天插入31,或者一天插入为0。
我需要的是跳过错误的行并插入其他行的方法,以及知道哪些行是错误的方法也是非常有用的。
伙计们,你们摇滚,
发布于 2016-07-29 22:29:34
Thx,我使用@dfundako回答;在TRY_CONVERT中,我能够看到哪些行是错误的(因为它返回null),并插入正确的代码在这里
select
TRY_CONVERT(datetime,
CONCAT (CONVERT(VARCHAR(10),db1.AnoCreaReg),'-',
CONVERT(VARCHAR(10),db1.MesCreaReg),'-',
CONVERT(VARCHAR(10),db1.DiaCreaReg))end) from Herpetologia.dbo.especimenes db1发布于 2016-07-29 22:41:09
为了将来的研究,排除不正确的记录就更容易了:
SELECT CAST(CharDateColumn as Date)
FROM ABC
WHERE IsDate(CharDateColumn) = 1;https://stackoverflow.com/questions/38668175
复制相似问题