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...

Fabiano Carvalho
   - 19 fev 2016

#Códigoif 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