Files
Rootvin-pluginHDCRTN/_sql/ef_Vyroba_GenerujRozpadCasu.sql
2025-05-21 21:06:33 +02:00

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