-2
我如何用null替換無效的日期時間?如何用NULL替換溢出?
我做上INT
列實際上是一個日期表示有些操作:
select
DATEADD(DD, rbaging.billing_period_end - 693594, '1900-01-01'),
DATEADD(DD, rbaging.billing_period_apply - 693594, '1900-01-01'),
*
from
[kslap208].[c021]..RB_Resident_Aging rbaging
join
[kslap208].[c021]..PA_Profile_BASE_1119 pro
on rbaging.bill_to_profile_id=pro.profile_id --4242
join
[kslap208].[c021]..PA_Admit_Det_BASE_10 unit
on unit.profile_id=rbaging.bill_to_profile_id
的rbaging
表作爲應該是日期的整數字段。這裏有一個例子:
734562
734776
734837
的文檔狀態的INT轉換爲Date這樣:
運行上面我的SQL語句時,我得到:
Msg 517, Level 16, State 1, Line 1
Adding a value to a 'datetime' column caused overflow.
我如何用null替換無效的日期時間?
你爲什麼要把這些日子添加到1900而不是0001? 'SELECT DATEADD(DAY,734562,CAST('00010101'AS DATE))'工作正常並且返回'2012-03-01' – 2013-05-13 23:18:18
@MartinSmith在sql server 0001中無效 – 2013-05-13 23:21:34
是的(它有更新的數據類型)。請參閱編輯以前的評論。 – 2013-05-13 23:26:51