-2

無効な日時を 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 を日付に変換するように記載されています。

ここに画像の説明を入力

上記のSQLステートメントを実行すると、次のようになります。

Msg 517, Level 16, State 1, Line 1
Adding a value to a 'datetime' column caused overflow.

無効な日時を null に置き換えるにはどうすればよいですか?

4

1 に答える 1

0
case when (rbaging.billing_period_end - 693594)>1
then DATEADD(DD, rbaging.billing_period_end - 693594, '1900-01-01')
else '' end,

case when (rbaging.billing_period_apply - 693594)>1
then DATEADD(DD, rbaging.billing_period_apply - 693594, '1900-01-01')
else ''
end

魔法のように機能します!

于 2013-05-13T23:45:13.247 に答える