Array
(
)

Datas - SQL

Anderson Souza
   - 19 fev 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.

Marcos P
   - 19 fev 2016

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

Faabiianooc
   - 19 fev 2016

#Código

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