0

複数のデータ フィールドで DateTime Maximum 関数を使用する方法がわかりません。最大値を取得したい 2 つの (DateTime) データ フィールドがあります。

「値」フィールドでは、リテラルを入力するか、1 つのフィールドにドロップすることしかできません。2 つのフィールドの配列を作成するにはどうすればよいですか?

ありがとうございました!

ここに画像の説明を入力

4

1 に答える 1

2

オブ

あなたが抱えている問題は、入力が日付ではなく日付の配列であることだと思います: DateTime[]

この関数は通常、2 つのデータフィールドの 2 つの日付の間で最大のものを見つけるのに役立つように作成されているとは思いません。

この関数が機能する方法は、配列を指定する必要があり、もちろん 2 番目のパラメーターは日付です。

これを行うには、datetime のリストを返す smartobject を使用できます (リストを呼び出すときは、最初のものだけを返さないように注意してください。これがデフォルト値です)。

関数は正常に機能し、このリストのどの日付が「最大」であるかを示します。

これらのデータフィールドで実際に日付使用する必要がある場合は、最初にこれら 2 つの日時を日時の配列に変換する必要があります。残念ながら、私はそれを行うことができる関数を認識していません (私は間違っているかもしれません...)。

それにもかかわらず、3つのオプションが表示されます。

  1. まさにそれを行うカスタム関数を作成します: 2 つの入力を取り、それらの配列を返します (その方法を説明するナレッジ ベースの記事があります)。
  2. 2 データを配列に変換するストアド プロシージャ (スマート オブジェクトを介して呼び出す) を使用すると、前述の関数 3 を使用できます。ストアドプロシージャに最大値を見つけさせることで、さらに簡素化できると思います。下記参照。

#3 の簡単なバージョンは次のようになります。

declare @D1 datetime

declare @D2 datetime
SET @D1 = getdate()
SET @D2 = getdate()+100

if (@D1>@D2)
    select @D1
else
    select @D2

これが役立つことを願っています。

于 2015-06-11T15:26:49.797 に答える