2013-04-24 56 views
1

我有StartDate, StartTime, EndTime,所有datetime2StartDate的表(table1)和OverMidnight布爾指定如果EndDate將是不同的(1)。「超出範圍」誤差變換DATETIME2爲datetime

我需要把這些與列StartDateEndDate移動到另一個表(table2),都需要爲datetime類型,並使用StartDateStartTime來獲得新的StartDateStartDateOverMidnightEndTime得到EndDate

不管是什麼我已經嘗試過給我一個錯誤:

The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.

回答

5

DATETIMEDATETIME2有不同的接受日期範圍。

DATETIME:

January 1, 1753, through December 31, 9999

DATETIME2:

0001-01-01 through 9999-12-31

我會檢查你是否有在原始數據的任何日期了DATETIME範圍或是否轉換代碼創建DATETIME以外的日期誤差範圍。

+1

啊,是的,這是一個格式不正確的日期,我不想通過8000條記錄並手動更改損壞的記錄,因此我將查詢更改爲前10條,並且工作正常,我添加了WHERE DATEPART(yyyy ,StartDate)> = 1753,它的工作原理,謝謝。 – DatBear 2013-04-24 18:48:59