将datetime2转换为datetime时出现"超出范围"错误

Dat*_*ear 1 sql-server-2008

我有一个table(table1)with StartDate, StartTime, EndTime,all datetime2和一个OverMidnight布尔值,它指定是否与... EndDate不同(+1)StartDate.

我需要将这些移动到另一个表(table2适用于列)StartDate和一个EndDate,都需要是datetime类型,并使用StartDate与StartTime获得新StartDate和StartDate,OverMidnight以及EndTime获得EndDate.

无论我尝试过什么,都会给我一个错误:

将datetime2数据类型转换为日期时间数据类型会导致超出范围的值.

Ian*_*ton 6

DATETIME和DATETIME2具有不同的可接受日期范围.

约会时间:

1753年1月1日至9999年12月31日

DATETIME2:

0001-01-01至9999-12-31

我会检查您的原始数据中是否有任何日期超出DATETIME范围,或者您的转换代码是否创建DATETIME了错误范围之外的日期.