SQL を介して指定された間隔で開始時間と終了時間の間のすべての有効なタイムスロットを返そうとしていますが、メンタルブロックが大きくなっています。以下は、いくつかの変数と、各値を格納するテーブルを含むサンプル コードです。変数は INT を使用しています。これは、値が最終的に格納されるデータ型が INT であり、変更できないためです。
DECLARE @StartTime INT = 900
DECLARE @EndTime INT = 2000
DECLARE @CurrentTime INT = 900
DECLARE @Interval INT = 15
DECLARE @Times TABLE
(
[Time] INT
)
WHILE (@CurrentTime <= @EndTime)
BEGIN
INSERT INTO @Times VALUES (@CurrentTime)
SET @CurrentTime = @CurrentTime + @Interval
END
上記を実行するとデータが入力されますが、無効な値が返されます。返される値:
900
915
930
945
960
975
etc.
望ましい結果は次のとおりです。
900
915
930
945
1000
1015
1030
etc.
現在の値を割って余りを期待することでこれを行う方法、または目的の結果を達成する簡単な方法はありますか?
ありがとう