示例:
INPUT:
column1 column2
10:00am 11:00am
我必须得到以下输出
输出:
column1 column2
10:00am 10:15am
10:16am 10:20am
10:21am 10:30am
10:31am 10:40am
10:41am 10:50am
10:51am 11:00am
答案 0 :(得分:1)
您的预期输出并非全部清晰......
你的第一个间隔是15分钟,其余的是10分钟。
你可以这样试试(严格的10分钟 - SQL Server语法):
DECLARE @Start TIME='10:00';
DECLARE @End TIME='11:30';
DECLARE @minuteIncrement INT=10;
WITH Tally AS
(
SELECT TOP ((DATEDIFF(MINUTE,CAST(@Start AS DATETIME),CAST(@End AS DATETIME)))/@minuteIncrement) (ROW_NUMBER() OVER(ORDER BY (SELECT NULL))-1) * @minuteIncrement AS Nr
FROM master..spt_values
)
SELECT CAST(DATEADD(MINUTE,Nr+1,@Start) AS TIME) AS column1
,CAST(DATEADD(MINUTE,Nr+@minuteIncrement,@Start) AS TIME) AS column2
FROM Tally;
如果您确实需要不同的第一个intervall,则必须使用第一个严格的intervall启动计算值,并使用UNION ALL
添加第一个步骤...
答案 1 :(得分:-1)
您可以使用(SELECT column1 FROM db) UNION (SELECT columns2 FROM db)