Time dimension tunning


Hoje fiz um tunning legal e gostaria de compartilhar com vocês.

Para preencher uma dimensão data, acredito que não existe muito segredo, basta fazer um loop pelas datas e inserir na tabela, mas e se você precise inserir em nível de minuto ou até segundo, pode acabar ficando lento pela inserção linha a linha

Segue abaixo exemplo original e versão tunnada

No meu exemplo eu precisava criar range de 30 em 30 minutos e que levava 3 segundos para 1 ano

SET NOCOUNT ON

TRUNCATE TABLE [dbo].[tData]

DECLARE @DATAINI as DATETIME2(0) = CONVERT(VARCHAR(4), YEAR(SYSDATETIME())) + ‘-01-01’

DECLARE @DATAFIM as DATETIME2(0) = CONVERT(VARCHAR(4), YEAR(SYSDATETIME()) + 0) + ‘-12-31’

DECLARE @DATA as DATETIME2(0) = @DATAINI

WHILE @DATA <= @DATAFIM

BEGIN

INSERT INTO [dbo].[tData]([CollectedDate],[Year],[Month],[Day],[Hour],[Minute],[Second])

VALUES

(

@DATA

,DATEPART(Year      ,@DATA)

,DATEPART(Month     ,@DATA)

,DATEPART(Day ,@DATA)

,DATEPART(Hour      ,@DATA)

,DATEPART(Minute,@DATA)

,DATEPART(Second,@DATA)

)

SET @DATA = DATEADD(minute,30,@DATA)

END

Porém como já havia comentado esse modo pode ser bem lento dependendo da granularidade necessária. Segue abaixo a versão tunnada.

Esta versão criei usando excel concatenando strings

SET NOCOUNT ON

TRUNCATE TABLE [dbo].[tData]

DECLARE @DATAINI as DATETIME2(0) = CONVERT(VARCHAR(4), YEAR(SYSDATETIME())) + ‘-01-01’

DECLARE @DATAFIM as DATETIME2(0) = CONVERT(VARCHAR(4), YEAR(SYSDATETIME()) + 0) + ‘-12-31’

DECLARE @DATA as DATETIME2(0) = @DATAINI

WHILE @DATA <= @DATAFIM

BEGIN

INSERT INTO [dbo].[tData]([CollectedDate],[Year],[Month],[Day],[Hour],[Minute],[Second])

— 1 dia completo de 30 em 30 minutos

SELECT DATEADD(Minute,0,@DATA),DATEPART(Minute,DATEADD(Minute,0,@DATA)),DATEPART(Month,DATEADD(Minute,0,@DATA)),DATEPART(Day,DATEADD(Minute,0,@DATA)),DATEPART(Hour,DATEADD(Minute,0,@DATA)),DATEPART(Minute,DATEADD(Minute,0,@DATA)),DATEPART(Second,DATEADD(Minute,0,@DATA)) UNION ALL

SELECT DATEADD(Minute,30,@DATA),DATEPART(Minute,DATEADD(Minute,30,@DATA)),DATEPART(Month,DATEADD(Minute,30,@DATA)),DATEPART(Day,DATEADD(Minute,30,@DATA)),DATEPART(Hour,DATEADD(Minute,30,@DATA)),DATEPART(Minute,DATEADD(Minute,30,@DATA)),DATEPART(Second,DATEADD(Minute,30,@DATA)) UNION ALL

SELECT DATEADD(Minute,60,@DATA),DATEPART(Minute,DATEADD(Minute,60,@DATA)),DATEPART(Month,DATEADD(Minute,60,@DATA)),DATEPART(Day,DATEADD(Minute,60,@DATA)),DATEPART(Hour,DATEADD(Minute,60,@DATA)),DATEPART(Minute,DATEADD(Minute,60,@DATA)),DATEPART(Second,DATEADD(Minute,60,@DATA)) UNION ALL

SELECT DATEADD(Minute,90,@DATA),DATEPART(Minute,DATEADD(Minute,90,@DATA)),DATEPART(Month,DATEADD(Minute,90,@DATA)),DATEPART(Day,DATEADD(Minute,90,@DATA)),DATEPART(Hour,DATEADD(Minute,90,@DATA)),DATEPART(Minute,DATEADD(Minute,90,@DATA)),DATEPART(Second,DATEADD(Minute,90,@DATA)) UNION ALL

SELECT DATEADD(Minute,120,@DATA),DATEPART(Minute,DATEADD(Minute,120,@DATA)),DATEPART(Month,DATEADD(Minute,120,@DATA)),DATEPART(Day,DATEADD(Minute,120,@DATA)),DATEPART(Hour,DATEADD(Minute,120,@DATA)),DATEPART(Minute,DATEADD(Minute,120,@DATA)),DATEPART(Second,DATEADD(Minute,120,@DATA)) UNION ALL

SELECT DATEADD(Minute,150,@DATA),DATEPART(Minute,DATEADD(Minute,150,@DATA)),DATEPART(Month,DATEADD(Minute,150,@DATA)),DATEPART(Day,DATEADD(Minute,150,@DATA)),DATEPART(Hour,DATEADD(Minute,150,@DATA)),DATEPART(Minute,DATEADD(Minute,150,@DATA)),DATEPART(Second,DATEADD(Minute,150,@DATA)) UNION ALL

SELECT DATEADD(Minute,180,@DATA),DATEPART(Minute,DATEADD(Minute,180,@DATA)),DATEPART(Month,DATEADD(Minute,180,@DATA)),DATEPART(Day,DATEADD(Minute,180,@DATA)),DATEPART(Hour,DATEADD(Minute,180,@DATA)),DATEPART(Minute,DATEADD(Minute,180,@DATA)),DATEPART(Second,DATEADD(Minute,180,@DATA)) UNION ALL

SELECT DATEADD(Minute,210,@DATA),DATEPART(Minute,DATEADD(Minute,210,@DATA)),DATEPART(Month,DATEADD(Minute,210,@DATA)),DATEPART(Day,DATEADD(Minute,210,@DATA)),DATEPART(Hour,DATEADD(Minute,210,@DATA)),DATEPART(Minute,DATEADD(Minute,210,@DATA)),DATEPART(Second,DATEADD(Minute,210,@DATA)) UNION ALL

SELECT DATEADD(Minute,240,@DATA),DATEPART(Minute,DATEADD(Minute,240,@DATA)),DATEPART(Month,DATEADD(Minute,240,@DATA)),DATEPART(Day,DATEADD(Minute,240,@DATA)),DATEPART(Hour,DATEADD(Minute,240,@DATA)),DATEPART(Minute,DATEADD(Minute,240,@DATA)),DATEPART(Second,DATEADD(Minute,240,@DATA)) UNION ALL

SELECT DATEADD(Minute,270,@DATA),DATEPART(Minute,DATEADD(Minute,270,@DATA)),DATEPART(Month,DATEADD(Minute,270,@DATA)),DATEPART(Day,DATEADD(Minute,270,@DATA)),DATEPART(Hour,DATEADD(Minute,270,@DATA)),DATEPART(Minute,DATEADD(Minute,270,@DATA)),DATEPART(Second,DATEADD(Minute,270,@DATA)) UNION ALL

SELECT DATEADD(Minute,300,@DATA),DATEPART(Minute,DATEADD(Minute,300,@DATA)),DATEPART(Month,DATEADD(Minute,300,@DATA)),DATEPART(Day,DATEADD(Minute,300,@DATA)),DATEPART(Hour,DATEADD(Minute,300,@DATA)),DATEPART(Minute,DATEADD(Minute,300,@DATA)),DATEPART(Second,DATEADD(Minute,300,@DATA)) UNION ALL

SELECT DATEADD(Minute,330,@DATA),DATEPART(Minute,DATEADD(Minute,330,@DATA)),DATEPART(Month,DATEADD(Minute,330,@DATA)),DATEPART(Day,DATEADD(Minute,330,@DATA)),DATEPART(Hour,DATEADD(Minute,330,@DATA)),DATEPART(Minute,DATEADD(Minute,330,@DATA)),DATEPART(Second,DATEADD(Minute,330,@DATA)) UNION ALL

SELECT DATEADD(Minute,360,@DATA),DATEPART(Minute,DATEADD(Minute,360,@DATA)),DATEPART(Month,DATEADD(Minute,360,@DATA)),DATEPART(Day,DATEADD(Minute,360,@DATA)),DATEPART(Hour,DATEADD(Minute,360,@DATA)),DATEPART(Minute,DATEADD(Minute,360,@DATA)),DATEPART(Second,DATEADD(Minute,360,@DATA)) UNION ALL

SELECT DATEADD(Minute,390,@DATA),DATEPART(Minute,DATEADD(Minute,390,@DATA)),DATEPART(Month,DATEADD(Minute,390,@DATA)),DATEPART(Day,DATEADD(Minute,390,@DATA)),DATEPART(Hour,DATEADD(Minute,390,@DATA)),DATEPART(Minute,DATEADD(Minute,390,@DATA)),DATEPART(Second,DATEADD(Minute,390,@DATA)) UNION ALL

SELECT DATEADD(Minute,420,@DATA),DATEPART(Minute,DATEADD(Minute,420,@DATA)),DATEPART(Month,DATEADD(Minute,420,@DATA)),DATEPART(Day,DATEADD(Minute,420,@DATA)),DATEPART(Hour,DATEADD(Minute,420,@DATA)),DATEPART(Minute,DATEADD(Minute,420,@DATA)),DATEPART(Second,DATEADD(Minute,420,@DATA)) UNION ALL

SELECT DATEADD(Minute,450,@DATA),DATEPART(Minute,DATEADD(Minute,450,@DATA)),DATEPART(Month,DATEADD(Minute,450,@DATA)),DATEPART(Day,DATEADD(Minute,450,@DATA)),DATEPART(Hour,DATEADD(Minute,450,@DATA)),DATEPART(Minute,DATEADD(Minute,450,@DATA)),DATEPART(Second,DATEADD(Minute,450,@DATA)) UNION ALL

SELECT DATEADD(Minute,480,@DATA),DATEPART(Minute,DATEADD(Minute,480,@DATA)),DATEPART(Month,DATEADD(Minute,480,@DATA)),DATEPART(Day,DATEADD(Minute,480,@DATA)),DATEPART(Hour,DATEADD(Minute,480,@DATA)),DATEPART(Minute,DATEADD(Minute,480,@DATA)),DATEPART(Second,DATEADD(Minute,480,@DATA)) UNION ALL

SELECT DATEADD(Minute,510,@DATA),DATEPART(Minute,DATEADD(Minute,510,@DATA)),DATEPART(Month,DATEADD(Minute,510,@DATA)),DATEPART(Day,DATEADD(Minute,510,@DATA)),DATEPART(Hour,DATEADD(Minute,510,@DATA)),DATEPART(Minute,DATEADD(Minute,510,@DATA)),DATEPART(Second,DATEADD(Minute,510,@DATA)) UNION ALL

SELECT DATEADD(Minute,540,@DATA),DATEPART(Minute,DATEADD(Minute,540,@DATA)),DATEPART(Month,DATEADD(Minute,540,@DATA)),DATEPART(Day,DATEADD(Minute,540,@DATA)),DATEPART(Hour,DATEADD(Minute,540,@DATA)),DATEPART(Minute,DATEADD(Minute,540,@DATA)),DATEPART(Second,DATEADD(Minute,540,@DATA)) UNION ALL

SELECT DATEADD(Minute,570,@DATA),DATEPART(Minute,DATEADD(Minute,570,@DATA)),DATEPART(Month,DATEADD(Minute,570,@DATA)),DATEPART(Day,DATEADD(Minute,570,@DATA)),DATEPART(Hour,DATEADD(Minute,570,@DATA)),DATEPART(Minute,DATEADD(Minute,570,@DATA)),DATEPART(Second,DATEADD(Minute,570,@DATA)) UNION ALL

SELECT DATEADD(Minute,600,@DATA),DATEPART(Minute,DATEADD(Minute,600,@DATA)),DATEPART(Month,DATEADD(Minute,600,@DATA)),DATEPART(Day,DATEADD(Minute,600,@DATA)),DATEPART(Hour,DATEADD(Minute,600,@DATA)),DATEPART(Minute,DATEADD(Minute,600,@DATA)),DATEPART(Second,DATEADD(Minute,600,@DATA)) UNION ALL

SELECT DATEADD(Minute,630,@DATA),DATEPART(Minute,DATEADD(Minute,630,@DATA)),DATEPART(Month,DATEADD(Minute,630,@DATA)),DATEPART(Day,DATEADD(Minute,630,@DATA)),DATEPART(Hour,DATEADD(Minute,630,@DATA)),DATEPART(Minute,DATEADD(Minute,630,@DATA)),DATEPART(Second,DATEADD(Minute,630,@DATA)) UNION ALL

SELECT DATEADD(Minute,660,@DATA),DATEPART(Minute,DATEADD(Minute,660,@DATA)),DATEPART(Month,DATEADD(Minute,660,@DATA)),DATEPART(Day,DATEADD(Minute,660,@DATA)),DATEPART(Hour,DATEADD(Minute,660,@DATA)),DATEPART(Minute,DATEADD(Minute,660,@DATA)),DATEPART(Second,DATEADD(Minute,660,@DATA)) UNION ALL

SELECT DATEADD(Minute,690,@DATA),DATEPART(Minute,DATEADD(Minute,690,@DATA)),DATEPART(Month,DATEADD(Minute,690,@DATA)),DATEPART(Day,DATEADD(Minute,690,@DATA)),DATEPART(Hour,DATEADD(Minute,690,@DATA)),DATEPART(Minute,DATEADD(Minute,690,@DATA)),DATEPART(Second,DATEADD(Minute,690,@DATA)) UNION ALL

SELECT DATEADD(Minute,720,@DATA),DATEPART(Minute,DATEADD(Minute,720,@DATA)),DATEPART(Month,DATEADD(Minute,720,@DATA)),DATEPART(Day,DATEADD(Minute,720,@DATA)),DATEPART(Hour,DATEADD(Minute,720,@DATA)),DATEPART(Minute,DATEADD(Minute,720,@DATA)),DATEPART(Second,DATEADD(Minute,720,@DATA)) UNION ALL

SELECT DATEADD(Minute,750,@DATA),DATEPART(Minute,DATEADD(Minute,750,@DATA)),DATEPART(Month,DATEADD(Minute,750,@DATA)),DATEPART(Day,DATEADD(Minute,750,@DATA)),DATEPART(Hour,DATEADD(Minute,750,@DATA)),DATEPART(Minute,DATEADD(Minute,750,@DATA)),DATEPART(Second,DATEADD(Minute,750,@DATA)) UNION ALL

SELECT DATEADD(Minute,780,@DATA),DATEPART(Minute,DATEADD(Minute,780,@DATA)),DATEPART(Month,DATEADD(Minute,780,@DATA)),DATEPART(Day,DATEADD(Minute,780,@DATA)),DATEPART(Hour,DATEADD(Minute,780,@DATA)),DATEPART(Minute,DATEADD(Minute,780,@DATA)),DATEPART(Second,DATEADD(Minute,780,@DATA)) UNION ALL

SELECT DATEADD(Minute,810,@DATA),DATEPART(Minute,DATEADD(Minute,810,@DATA)),DATEPART(Month,DATEADD(Minute,810,@DATA)),DATEPART(Day,DATEADD(Minute,810,@DATA)),DATEPART(Hour,DATEADD(Minute,810,@DATA)),DATEPART(Minute,DATEADD(Minute,810,@DATA)),DATEPART(Second,DATEADD(Minute,810,@DATA)) UNION ALL

SELECT DATEADD(Minute,840,@DATA),DATEPART(Minute,DATEADD(Minute,840,@DATA)),DATEPART(Month,DATEADD(Minute,840,@DATA)),DATEPART(Day,DATEADD(Minute,840,@DATA)),DATEPART(Hour,DATEADD(Minute,840,@DATA)),DATEPART(Minute,DATEADD(Minute,840,@DATA)),DATEPART(Second,DATEADD(Minute,840,@DATA)) UNION ALL

SELECT DATEADD(Minute,870,@DATA),DATEPART(Minute,DATEADD(Minute,870,@DATA)),DATEPART(Month,DATEADD(Minute,870,@DATA)),DATEPART(Day,DATEADD(Minute,870,@DATA)),DATEPART(Hour,DATEADD(Minute,870,@DATA)),DATEPART(Minute,DATEADD(Minute,870,@DATA)),DATEPART(Second,DATEADD(Minute,870,@DATA)) UNION ALL

SELECT DATEADD(Minute,900,@DATA),DATEPART(Minute,DATEADD(Minute,900,@DATA)),DATEPART(Month,DATEADD(Minute,900,@DATA)),DATEPART(Day,DATEADD(Minute,900,@DATA)),DATEPART(Hour,DATEADD(Minute,900,@DATA)),DATEPART(Minute,DATEADD(Minute,900,@DATA)),DATEPART(Second,DATEADD(Minute,900,@DATA)) UNION ALL

SELECT DATEADD(Minute,930,@DATA),DATEPART(Minute,DATEADD(Minute,930,@DATA)),DATEPART(Month,DATEADD(Minute,930,@DATA)),DATEPART(Day,DATEADD(Minute,930,@DATA)),DATEPART(Hour,DATEADD(Minute,930,@DATA)),DATEPART(Minute,DATEADD(Minute,930,@DATA)),DATEPART(Second,DATEADD(Minute,930,@DATA)) UNION ALL

SELECT DATEADD(Minute,960,@DATA),DATEPART(Minute,DATEADD(Minute,960,@DATA)),DATEPART(Month,DATEADD(Minute,960,@DATA)),DATEPART(Day,DATEADD(Minute,960,@DATA)),DATEPART(Hour,DATEADD(Minute,960,@DATA)),DATEPART(Minute,DATEADD(Minute,960,@DATA)),DATEPART(Second,DATEADD(Minute,960,@DATA)) UNION ALL

SELECT DATEADD(Minute,990,@DATA),DATEPART(Minute,DATEADD(Minute,990,@DATA)),DATEPART(Month,DATEADD(Minute,990,@DATA)),DATEPART(Day,DATEADD(Minute,990,@DATA)),DATEPART(Hour,DATEADD(Minute,990,@DATA)),DATEPART(Minute,DATEADD(Minute,990,@DATA)),DATEPART(Second,DATEADD(Minute,990,@DATA)) UNION ALL

SELECT DATEADD(Minute,1020,@DATA),DATEPART(Minute,DATEADD(Minute,1020,@DATA)),DATEPART(Month,DATEADD(Minute,1020,@DATA)),DATEPART(Day,DATEADD(Minute,1020,@DATA)),DATEPART(Hour,DATEADD(Minute,1020,@DATA)),DATEPART(Minute,DATEADD(Minute,1020,@DATA)),DATEPART(Second,DATEADD(Minute,1020,@DATA)) UNION ALL

SELECT DATEADD(Minute,1050,@DATA),DATEPART(Minute,DATEADD(Minute,1050,@DATA)),DATEPART(Month,DATEADD(Minute,1050,@DATA)),DATEPART(Day,DATEADD(Minute,1050,@DATA)),DATEPART(Hour,DATEADD(Minute,1050,@DATA)),DATEPART(Minute,DATEADD(Minute,1050,@DATA)),DATEPART(Second,DATEADD(Minute,1050,@DATA)) UNION ALL

SELECT DATEADD(Minute,1080,@DATA),DATEPART(Minute,DATEADD(Minute,1080,@DATA)),DATEPART(Month,DATEADD(Minute,1080,@DATA)),DATEPART(Day,DATEADD(Minute,1080,@DATA)),DATEPART(Hour,DATEADD(Minute,1080,@DATA)),DATEPART(Minute,DATEADD(Minute,1080,@DATA)),DATEPART(Second,DATEADD(Minute,1080,@DATA)) UNION ALL

SELECT DATEADD(Minute,1110,@DATA),DATEPART(Minute,DATEADD(Minute,1110,@DATA)),DATEPART(Month,DATEADD(Minute,1110,@DATA)),DATEPART(Day,DATEADD(Minute,1110,@DATA)),DATEPART(Hour,DATEADD(Minute,1110,@DATA)),DATEPART(Minute,DATEADD(Minute,1110,@DATA)),DATEPART(Second,DATEADD(Minute,1110,@DATA)) UNION ALL

SELECT DATEADD(Minute,1140,@DATA),DATEPART(Minute,DATEADD(Minute,1140,@DATA)),DATEPART(Month,DATEADD(Minute,1140,@DATA)),DATEPART(Day,DATEADD(Minute,1140,@DATA)),DATEPART(Hour,DATEADD(Minute,1140,@DATA)),DATEPART(Minute,DATEADD(Minute,1140,@DATA)),DATEPART(Second,DATEADD(Minute,1140,@DATA)) UNION ALL

SELECT DATEADD(Minute,1170,@DATA),DATEPART(Minute,DATEADD(Minute,1170,@DATA)),DATEPART(Month,DATEADD(Minute,1170,@DATA)),DATEPART(Day,DATEADD(Minute,1170,@DATA)),DATEPART(Hour,DATEADD(Minute,1170,@DATA)),DATEPART(Minute,DATEADD(Minute,1170,@DATA)),DATEPART(Second,DATEADD(Minute,1170,@DATA)) UNION ALL

SELECT DATEADD(Minute,1200,@DATA),DATEPART(Minute,DATEADD(Minute,1200,@DATA)),DATEPART(Month,DATEADD(Minute,1200,@DATA)),DATEPART(Day,DATEADD(Minute,1200,@DATA)),DATEPART(Hour,DATEADD(Minute,1200,@DATA)),DATEPART(Minute,DATEADD(Minute,1200,@DATA)),DATEPART(Second,DATEADD(Minute,1200,@DATA)) UNION ALL

SELECT DATEADD(Minute,1230,@DATA),DATEPART(Minute,DATEADD(Minute,1230,@DATA)),DATEPART(Month,DATEADD(Minute,1230,@DATA)),DATEPART(Day,DATEADD(Minute,1230,@DATA)),DATEPART(Hour,DATEADD(Minute,1230,@DATA)),DATEPART(Minute,DATEADD(Minute,1230,@DATA)),DATEPART(Second,DATEADD(Minute,1230,@DATA)) UNION ALL

SELECT DATEADD(Minute,1260,@DATA),DATEPART(Minute,DATEADD(Minute,1260,@DATA)),DATEPART(Month,DATEADD(Minute,1260,@DATA)),DATEPART(Day,DATEADD(Minute,1260,@DATA)),DATEPART(Hour,DATEADD(Minute,1260,@DATA)),DATEPART(Minute,DATEADD(Minute,1260,@DATA)),DATEPART(Second,DATEADD(Minute,1260,@DATA)) UNION ALL

SELECT DATEADD(Minute,1290,@DATA),DATEPART(Minute,DATEADD(Minute,1290,@DATA)),DATEPART(Month,DATEADD(Minute,1290,@DATA)),DATEPART(Day,DATEADD(Minute,1290,@DATA)),DATEPART(Hour,DATEADD(Minute,1290,@DATA)),DATEPART(Minute,DATEADD(Minute,1290,@DATA)),DATEPART(Second,DATEADD(Minute,1290,@DATA)) UNION ALL

SELECT DATEADD(Minute,1320,@DATA),DATEPART(Minute,DATEADD(Minute,1320,@DATA)),DATEPART(Month,DATEADD(Minute,1320,@DATA)),DATEPART(Day,DATEADD(Minute,1320,@DATA)),DATEPART(Hour,DATEADD(Minute,1320,@DATA)),DATEPART(Minute,DATEADD(Minute,1320,@DATA)),DATEPART(Second,DATEADD(Minute,1320,@DATA)) UNION ALL

SELECT DATEADD(Minute,1350,@DATA),DATEPART(Minute,DATEADD(Minute,1350,@DATA)),DATEPART(Month,DATEADD(Minute,1350,@DATA)),DATEPART(Day,DATEADD(Minute,1350,@DATA)),DATEPART(Hour,DATEADD(Minute,1350,@DATA)),DATEPART(Minute,DATEADD(Minute,1350,@DATA)),DATEPART(Second,DATEADD(Minute,1350,@DATA)) UNION ALL

SELECT DATEADD(Minute,1380,@DATA),DATEPART(Minute,DATEADD(Minute,1380,@DATA)),DATEPART(Month,DATEADD(Minute,1380,@DATA)),DATEPART(Day,DATEADD(Minute,1380,@DATA)),DATEPART(Hour,DATEADD(Minute,1380,@DATA)),DATEPART(Minute,DATEADD(Minute,1380,@DATA)),DATEPART(Second,DATEADD(Minute,1380,@DATA)) UNION ALL

SELECT DATEADD(Minute,1410,@DATA),DATEPART(Minute,DATEADD(Minute,1410,@DATA)),DATEPART(Month,DATEADD(Minute,1410,@DATA)),DATEPART(Day,DATEADD(Minute,1410,@DATA)),DATEPART(Hour,DATEADD(Minute,1410,@DATA)),DATEPART(Minute,DATEADD(Minute,1410,@DATA)),DATEPART(Second,DATEADD(Minute,1410,@DATA))

SET @DATA = DATEADD(day,1,@DATA)

END

Conclusão

Eu sei que visualmente ficou mais feio, mas neste exemplo rodou em 0 segundos 🙂

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s