40 lines
1.1 KiB
Transact-SQL
40 lines
1.1 KiB
Transact-SQL
-- ef_Vyroba_GenerujRozpadCasu
|
|
CREATE FUNCTION dbo.ef_Vyroba_GenerujRozpadCasu (
|
|
@datStart DATETIME=NULL,
|
|
@numOfDays SMALLINT=3,
|
|
@stepMinutes SMALLINT=60
|
|
)
|
|
|
|
/*
|
|
RETURNS TABLE
|
|
AS
|
|
RETURN
|
|
(
|
|
WITH Recursive_CTE AS
|
|
(
|
|
SELECT dbo.hf_TruncDate(ISNULL(@datStart, GETDATE())) AS TimestampUtc
|
|
UNION ALL
|
|
SELECT DATEADD(MINUTE, @stepMinutes, TimestampUtc)
|
|
FROM Recursive_CTE
|
|
WHERE TimestampUtc < DATEADD(ms, -3, dbo.hf_TruncDate(DATEADD(DAY, @numOfDays, DATEADD(DAY, 1, ISNULL(@datStart, GETDATE())))))
|
|
)
|
|
SELECT *
|
|
FROM Recursive_CTE
|
|
)
|
|
*/
|
|
RETURNS @Result TABLE (TimestampUtc DATETIME)
|
|
AS
|
|
BEGIN
|
|
DECLARE @currentTimestamp DATETIME = dbo.hf_TruncDate(ISNULL(@datStart, GETDATE()));
|
|
DECLARE @endTimestamp DATETIME = DATEADD(ms, -3, dbo.hf_TruncDate(DATEADD(DAY, @numOfDays, DATEADD(DAY, 1, ISNULL(@datStart, GETDATE())))));
|
|
|
|
WHILE @currentTimestamp <= @endTimestamp
|
|
BEGIN
|
|
INSERT INTO @Result (TimestampUtc)
|
|
VALUES (@currentTimestamp);
|
|
|
|
SET @currentTimestamp = DATEADD(MINUTE, @stepMinutes, @currentTimestamp);
|
|
END;
|
|
|
|
RETURN;
|
|
END |