這裏您在SQL Server中的語法定義
DECLARE @startTime SMALLDATETIME = '2013-12-30 00:00:00';
DECLARE @stopTime SMALLDATETIME = '2014-01-10 00:00:00';
WITH intervals(IntervalNo, intervalStart, dayNo)
AS
(
SELECT 0, @startTime, datepart(dw, @startTime)
UNION ALL
SELECT intervals.IntervalNo + 1, DATEADD(MINUTE, 30, intervals.intervalStart), datepart(dw, DATEADD(MINUTE, 30, intervals.intervalStart))
FROM intervals
WHERE DATEADD(MINUTE, 30, intervals.intervalStart) < @stopTime
)
SELECT 'period'+CAST(DATEDIFF(MINUTE, @startTime, r.created)/30 as VARCHAR(10)), COUNT(r.created)
FROM intervals i
INNER JOIN rental r
ON i.dayNo = datepart(dw, r.created) AND i.IntervalNo = DATEDIFF(MINUTE, @startTime, r.created)/30 AND i.dayNo < 6
GROUP BY DATEDIFF(MINUTE, @startTime, r.created)/30
OPTION (MAXRECURSION 0)
請添加相應的SQL標籤,例如'sql-server','mysql','oracle'等 – StuartLC