0

temp table に分単位の可変時間増分を含む datetime シーケンスを作成する必要があります。5 を使用すると、出力は次のようになります。

2012-12-13 04:20:00.000
2012-12-13 04:25:00.000
2012-12-13 04:30:00.000
2012-12-13 04:35:00.000
2012-12-13 04:40:00.000
2012-12-13 04:50:00.000

これはできますか?

4

2 に答える 2

1

シーケンス テーブルを使用することをお勧めします。日時シーケンスをすばやく簡単に生成するのに非常に役立つため、すべてのデータベースにシーケンス テーブルが必要です。

CREATE TABLE Sequence
(Number int PRIMARY KEY)

次に、このテーブルに 0 から 1,000,000 までの整数を入力します。心配する必要はありません。これを行う必要があるのは 1 回だけです。

次に、次のバリエーションを使用して、好きなだけ (最大 1,000,001) 日時シーケンスを生成できます。

SELECT DATEADD(minute, Number * @stepsize, @StartDateTime)
FROM Sequence
WHERE Number<@NumberRequired

このSQLフィドルを参照してください

これは通常、CTE を使用するよりも高速であり、テーブルから直接情報を取得するのとほぼ同じ速さです。実際、一時テーブルを使用するのではなく、これを使用して SP (またはテーブル値関数) を構築することを検討することができます。これは、ほぼ同じ速度でより柔軟になるためです。

于 2013-04-16T03:06:45.033 に答える