Datas - SQL

19/02/2016

Galera bom dia!

Como faço pra retornar todos os dias de um mês numa Query? Só consigo retornar o dia 1, e quando coloco outro dia retorna vazia.

Anderson Souza

Respostas

19/02/2016

Marcos P

Coloque aqui a query que você está tentando fazer...
Responder Citar

19/02/2016

Fabiano Carvalho

if object_Id('DATAS') is not null
drop table DATAS;


SELECT DATEADD(MM, DATEDIFF(MM,0,GETDATE()-1), 0) DATA_INICIO, 
CAST(CAST(GETDATE()-1 AS DATETIME) AS DATETIME) AS DATA_FINAL
INTO DATAS;


if object_id('TemporariaDatas') is not null 
drop table TemporariaDatas;
create table TemporariaDatas (
	Data Varchar(10)
)

Declare @DataInical Datetime,
		   @DataFinal Datetime, 
		   @RepetidorDias Int,
		   @ZeraDias int

SET @DataInical = (select data_inicio from DATAS)
SET @DataFinal= (select Data_Final from DATAS)

While  @DataInical <= @DataFinal
begin
set @RepetidorDias = 1

set @ZeraDias = 0

While @ZeraDias < @RepetidorDias --Repete os dias na tabela
begin
	insert into TemporariaDatas (Data)
	select Convert(Varchar(10),@DataInical,103) as data
	
	set @ZeraDias = @ZeraDias + 1
end
set @DataInical = dateadd(d,1,@DataInical)
end --EndDatas

SET LANGUAGE PORTUGUESE;
SELECT 
	LEFT(DATA,2) AS DIA_MES,
	LEFT(UPPER(DATENAME(DW,CONVERT(DATETIME,DATA,103))),3) AS DIA
FROM TemporariaDatas



SET LANGUAGE PORTUGUESE;
SELECT 
	Data,
	LEFT(DATA,2) AS DIA_MES,
	LEFT(UPPER(DATENAME(DW,CONVERT(DATETIME,DATA,103))),3) AS DIA_SEMANA
FROM TemporariaDatas

Responder Citar