Quantidade de Dias no Mes
Boa tarde, tenho uma coluna do tipo DateTime, preciso saber quantos dias aparece para um determinado mes.
Exemplo:
CounaData
2012-08-23 16:10:00.927
2012-08-23 16:13:41.487
2012-08-23 16:21:39.297
2012-09-03 14:42:51.490
2012-09-03 14:43:33.623
2012-09-03 14:44:27.633
2012-09-03 14:45:10.080
O mês 8 tem 3 dias, e o mês 9 tem 4 dias.
Como busco isso em uma query
Exemplo:
CounaData
2012-08-23 16:10:00.927
2012-08-23 16:13:41.487
2012-08-23 16:21:39.297
2012-09-03 14:42:51.490
2012-09-03 14:43:33.623
2012-09-03 14:44:27.633
2012-09-03 14:45:10.080
O mês 8 tem 3 dias, e o mês 9 tem 4 dias.
Como busco isso em uma query
Max
Curtidas 0
Respostas
Alex Lekao
18/09/2012
Ola Boa tarde!!
Acredito que no forum ja tenha alguma coisa deste tipo, mas voce podera usar o DateDiff se nao me engano.
Voce ira colocar Datediff(dd,datainicial,datafinal).
Exemplo: Select datediff(dd,'2011/05/01','2011/05/31').
Verifica se é isso que voce quer.
Abraco.
Acredito que no forum ja tenha alguma coisa deste tipo, mas voce podera usar o DateDiff se nao me engano.
Voce ira colocar Datediff(dd,datainicial,datafinal).
Exemplo: Select datediff(dd,'2011/05/01','2011/05/31').
Verifica se é isso que voce quer.
Abraco.
GOSTEI 0
Max
18/09/2012
O DateDiff, pega a quantidade de dias entre duas datas, certo?
Então, eu quero a quantidade de dias de um determinado mês.
Então, eu quero a quantidade de dias de um determinado mês.
GOSTEI 0
Bruno Leandro
18/09/2012
Ola Maxuel veja se esse comando atende a sua demanda
select sum(1),DATEPART(year, CounaData) + DATEPART(month, CounaData)
from tabela
group by DATEPART(year, CounaData) + DATEPART(month, CounaData)
select sum(1),DATEPART(year, CounaData) + DATEPART(month, CounaData)
from tabela
group by DATEPART(year, CounaData) + DATEPART(month, CounaData)
GOSTEI 0
Alex Lekao
18/09/2012
Ola Boa tarde!!
Acredito que no forum ja tenha alguma coisa deste tipo, mas voce podera usar o DateDiff se nao me engano.
Voce ira colocar Datediff(dd,datainicial,datafinal).
Exemplo: Select datediff(dd,'2011/05/01','2011/05/31')+1.
Verifica se é isso que voce quer.
Abraco.
Acredito que no forum ja tenha alguma coisa deste tipo, mas voce podera usar o DateDiff se nao me engano.
Voce ira colocar Datediff(dd,datainicial,datafinal).
Exemplo: Select datediff(dd,'2011/05/01','2011/05/31')+1.
Verifica se é isso que voce quer.
Abraco.
GOSTEI 0
Alex Lekao
18/09/2012
Nossa minha maquina deu uma congelada e acabou enviando o codigo sem eu terminar.
É isso mesmo maxuel ele pega uma quantidade de dias entre duas datas, por isso no segundo codigo eu coloquei um "+1" para que considerasse o dia 01 tambem no calculo.
O que vc quer entar eh dentro de um periodo apresentar a quantidade de dias acumulado por mes?
Confesso que nao estou entendendo muito bem o que esta precisando.
Abraco.
É isso mesmo maxuel ele pega uma quantidade de dias entre duas datas, por isso no segundo codigo eu coloquei um "+1" para que considerasse o dia 01 tambem no calculo.
O que vc quer entar eh dentro de um periodo apresentar a quantidade de dias acumulado por mes?
Confesso que nao estou entendendo muito bem o que esta precisando.
Abraco.
GOSTEI 0
Max
18/09/2012
Tenho uma coluna do tipo datetime, queria uma query que retorne a quantidade de dias de um determinado mes da coluna Data_trabalho.
Coluna
Data_Trabalho
2012-08-31 15:45:26.153
2012-08-31 15:48:18.757
2012-08-31 15:58:33.790
2012-08-31 16:01:52.743
2012-09-03 10:14:16.307
2012-09-03 10:33:50.120
2012-09-03 10:34:56.047
2012-09-03 10:38:05.143
2012-09-03 10:38:27.310
Resultado
Qtde_dias Mes
4 8
5 9
Não sei se deu pra entender melhor.
Coluna
Data_Trabalho
2012-08-31 15:45:26.153
2012-08-31 15:48:18.757
2012-08-31 15:58:33.790
2012-08-31 16:01:52.743
2012-09-03 10:14:16.307
2012-09-03 10:33:50.120
2012-09-03 10:34:56.047
2012-09-03 10:38:05.143
2012-09-03 10:38:27.310
Resultado
Qtde_dias Mes
4 8
5 9
Não sei se deu pra entender melhor.
GOSTEI 0
Bruno Leandro
18/09/2012
Ola Maxuel voce realizou o teste com o comando que passei ?
GOSTEI 0
Alex Lekao
18/09/2012
Opa, ta melhorando... rsrsr
Entao vc vai agrupar isso baseado em algum funcionario, coisa do tipo?
Estou tentando montar algo com aquilo que foi sugerido pelo Bruno mas nao deu muito certo.
To vendo alguma coisa para ver se consigo te ajudar.
Abraco.
Entao vc vai agrupar isso baseado em algum funcionario, coisa do tipo?
Estou tentando montar algo com aquilo que foi sugerido pelo Bruno mas nao deu muito certo.
To vendo alguma coisa para ver se consigo te ajudar.
Abraco.
GOSTEI 0
Max
18/09/2012
Bruno, tentei sim
mas o resultado foi
SELECT SUM(1), DATEPART(YEAR,DaTa_Trabalho) + DATEPART(MONTH,DaTa_Trabalho) FROM TB_SGA_TABULACAO group by DATEPART(YEAR,DaTa_Trabalho) + DATEPART(MONTH,DaTa_Trabalho)
mas o resultado foi
----------- ----------- 65 2020 62 2021 (2 row(s) affected)
GOSTEI 0
Max
18/09/2012
Alex,
Não estou agrupando por nada. Tenho que ter um resultado quem me mostre que no no mês 9 eu teve 5 dias, no mes 8 tive 4 dias.
Não estou agrupando por nada. Tenho que ter um resultado quem me mostre que no no mês 9 eu teve 5 dias, no mes 8 tive 4 dias.
GOSTEI 0
Bruno Leandro
18/09/2012
ok o datepart ta retornando inteiro tem que converter para texto, tente assim entao
SELECT SUM(1), CAST(DATEPART(YEAR,DaTa_Trabalho) as varchar(4)) + CAST(DATEPART(MONTH,DaTa_Trabalho) as varchar(2))
FROM TB_SGA_TABULACAO
group by CAST(DATEPART(YEAR,DaTa_Trabalho) as varchar(4)) + CAST(DATEPART(MONTH,DaTa_Trabalho) as varchar(2))
SELECT SUM(1), CAST(DATEPART(YEAR,DaTa_Trabalho) as varchar(4)) + CAST(DATEPART(MONTH,DaTa_Trabalho) as varchar(2))
FROM TB_SGA_TABULACAO
group by CAST(DATEPART(YEAR,DaTa_Trabalho) as varchar(4)) + CAST(DATEPART(MONTH,DaTa_Trabalho) as varchar(2))
GOSTEI 0
Alex Lekao
18/09/2012
Maxuel, tente assim e me diga se da certo.
select
datediff(dd,MIN(datemi),max(datemi))+1,
DATEPART(MM,datemi),
DATEPART(YYYY,datemi)
from REQVDA
where datemi between '01.01.2012' and '31.07.2012'
group by DATEPART(MM,datemi),DATEPART(YYYY,datemi)
Abraco.
select
datediff(dd,MIN(datemi),max(datemi))+1,
DATEPART(MM,datemi),
DATEPART(YYYY,datemi)
from REQVDA
where datemi between '01.01.2012' and '31.07.2012'
group by DATEPART(MM,datemi),DATEPART(YYYY,datemi)
Abraco.
GOSTEI 0
Alex Lekao
18/09/2012
No codigo de sugeri vc pode usar a sugestao do Bruno para dar uma formatada na exibicao.
Desculpae mas na sugestao esta os campos do meu banco aqui, ficava mais facil para mim... rsrsr ;-.)
Ai ficaria assim:
SELECT
DATEDIFF(DD,MIN(DATEMI),MAX(DATEMI))+1,
CAST(DATEPART(MM,DATEMI) AS VARCHAR(2))+'/'+CAST(DATEPART(YYYY,DATEMI) AS VARCHAR(4))
from REQVDA
WHERE DATEMI BETWEEN '01.01.2012' AND '31.07.2012'
GROUP by DATEPART(MM,DATEMI),DATEPART(YYYY,DATEMI)
ORDER BY DATEPART(MM,DATEMI),DATEPART(YYYY,DATEMI)
Desculpae mas na sugestao esta os campos do meu banco aqui, ficava mais facil para mim... rsrsr ;-.)
Ai ficaria assim:
SELECT
DATEDIFF(DD,MIN(DATEMI),MAX(DATEMI))+1,
CAST(DATEPART(MM,DATEMI) AS VARCHAR(2))+'/'+CAST(DATEPART(YYYY,DATEMI) AS VARCHAR(4))
from REQVDA
WHERE DATEMI BETWEEN '01.01.2012' AND '31.07.2012'
GROUP by DATEPART(MM,DATEMI),DATEPART(YYYY,DATEMI)
ORDER BY DATEPART(MM,DATEMI),DATEPART(YYYY,DATEMI)
GOSTEI 0
Max
18/09/2012
Show de bola, deu certo.
Valeu pela força.
Valeu pela força.
GOSTEI 0
Alex Lekao
18/09/2012
blz.
GOSTEI 0