私は以下のクエリを持っており、2 datetimeの間に30分間隔でdatetimeを取得したいと思います。基本的に私はそれを持っていますが、時間制限が24時間を超える場合には制限があり、結果が返されません。例えばmssql 30分間隔beteen 2 datetime
:
@DateTime1 = 24/11/2016 18:00:00
@DateTime2 = 25/11/2016 06:00:00
結果:(フォーマットの "DD-HH:MM")
24-18:00
24-18:30
24-19:00
24-19:30
24-20:00
...
...
25-05:00
25-05:30
25-06:00
私が試したどのような。
SELECT number, DATEADD(MINUTE, number, @DateTime1) AS DateTimeLine, DATEPART(DAY, DATEADD(MINUTE, number, @DateTime1)) AS Days, DATEPART(MONTH,
DATEADD(MINUTE, number, @DateTime1)) AS Months, DATEPART(YEAR, DATEADD(MINUTE, number, @DateTime1)) AS Years, DATEPART(HOUR, DATEADD(MINUTE,
number, @DateTime1)) AS Hours, DATEPART(MINUTE, DATEADD(MINUTE, number, @DateTime1)) AS Minute, CAST(DATEADD(MINUTE, number, @DateTime1)
AS DATE) AS Date, CAST(DATEADD(MINUTE, number, @DateTime1) AS TIME) AS Time
FROM master.dbo.spt_values
WHERE (type = 'P') AND (DATEPART(MINUTE, DATEADD(MINUTE, number, @DateTime1)) = 30 OR DATEPART(MINUTE, DATEADD(MINUTE, number, @DateTime1)) = 0) AND (DATEADD(MINUTE, number, @DateTime1) <= @DateTime2)
ORDER BY number
あなた自身が日付の上に島とのギャップを計算見つけた場合は、たくさんの範囲、私は非常にカレンダーテーブルを作成することをお勧め。それは非常に助けになります。 –