【发布时间】:2016-10-22 00:16:12
【问题描述】:
运行时异常:
将 nvarchar 数据类型转换为 datetime 数据类型 导致超出范围的值。
代码:
INSERT INTO [Migrated].[dbo].[MyTables] (LegacyId,DeedDate)
SELECT DISTINCT
a.[IPLID], CONVERT(nvarchar(255), a.[Deeddate], 127)
FROM
[Legacy].[dbo].[MyTables2] as a
- MyTables --> DeedDate datetime 允许 Null
- MyTables2 --> Deeddate nvarchar(255) 允许 Null
希望我做得正确。但是为什么会出现上述错误呢?
我使用的是 SQL Server 2014 express。
注意:你能告诉我如何找出MyTables2 Deeddate 上的缺陷吗?我的意思是不同的日期格式等。或者用NULL替换这些日期。
【问题讨论】:
-
您正尝试将
nvarchar插入datetime列。错误信息很清楚。 -
您的日期在 1.1.1753 之前(或 31.12.9999 之后)?
-
@vkp 这就是我转换它的原因。我错了吗?
-
尝试使用越来越小的 MyTables2 集来准确确定导致问题的值。
-
您仍在将其转换为 nvarchar。
标签: sql sql-server