SQL Server では、DATEADD
組み込み関数を別の関数でラップする必要があります。
問題は、この動作を実装する必要があることです:
戻り値の型
戻り値のデータ型は、日付引数のデータ型です[...]
たとえば、datetime
引数としてa を渡すと、 aDATEADD
が返されますdatetime
。を渡すと、date
がDATEADD
返されますdate
。
datetime
次の例では、常に...が返されます。
create function add_months(@dt date, @interval int)
returns datetime
as
begin
return DATEADD(month, @interval, @dt)
end
これを SQL Server に実装するにはどうすればよいですか?
(編集)
環境
Informix から SQL Server へのデータベース移行を実行しています。ここでの問題はデータベース部分ではなく、コードです。SQL クエリが組み込まれているため、変更が必要なプログラムが何百もあります。これが、使用を避けようとしている主な理由ですDATEADD(MONTH, 1, foo)
。この自動変換は、ほとんどの場合単純ですが、場合によっては非常に難しい場合があります。udf を使用すると、informix 関数の名前を置き換えるだけで、より深いリファクタリングを行う必要はありません。