Prvni verze
This commit is contained in:
40
_sql/ef_Vyroba_GenerujRozpadCasu.sql
Normal file
40
_sql/ef_Vyroba_GenerujRozpadCasu.sql
Normal file
@ -0,0 +1,40 @@
|
||||
-- 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
|
||||
Reference in New Issue
Block a user