Data dinâmica?
É o seguinte essa linha de código eu ja testei e funciona:
[b:2b61dfe36f]obs.: estou usando o convert e datetime porque busco de um campo que tem data e hora juntos e eu desejo pegar apenas a data para fazer as comparações[/b:2b61dfe36f]
coloco ela numa condição where para o codigo fazer a busca nessa data determinada, so que é o seguinte, dessa forma o código esta estático, eu sempre vou ter que mecher para buscar o mês anterior, explico melhor!
Eu preciso que sempre que entrar no mês exemplo: saimos de fevereiro e agora estamos em março, este codigo deveria automaticamente pegar de 01/02 ate 29/02 sem que eu va lá e mude.
Estamos em março, quando for abril eu gostaria que automaticamente ele pegasse 01/03 ate 31/03 sem que eu mude.
Alguém pode me ajudar?
Espero ter sido claro.... :p
valeu!
[b:2b61dfe36f]obs.: estou usando o convert e datetime porque busco de um campo que tem data e hora juntos e eu desejo pegar apenas a data para fazer as comparações[/b:2b61dfe36f]
convert(datetime,´01/02/2008´,103) AND convert(datetime,´29/02/2008´,103)
coloco ela numa condição where para o codigo fazer a busca nessa data determinada, so que é o seguinte, dessa forma o código esta estático, eu sempre vou ter que mecher para buscar o mês anterior, explico melhor!
Eu preciso que sempre que entrar no mês exemplo: saimos de fevereiro e agora estamos em março, este codigo deveria automaticamente pegar de 01/02 ate 29/02 sem que eu va lá e mude.
Estamos em março, quando for abril eu gostaria que automaticamente ele pegasse 01/03 ate 31/03 sem que eu mude.
Alguém pode me ajudar?
Espero ter sido claro.... :p
valeu!
Ricardonp
Curtidas 0
Respostas
Edu2099
12/03/2008
Se puder usar variáveis:
Se não puder, dá pra usar direto na query:
declare @d1 datetime declare @d2 datetime select @d1 = convert(datetime, left(convert(varchar, dateadd(MM, -1, getdate()), 112), 6) + ´01´) select @d2 = dateadd(SS, -1, convert(datetime, left(convert(varchar, getdate(), 112), 6) + ´01´)) select getdate(), @d1 d_inicio, @d2 d_fim
Se não puder, dá pra usar direto na query:
select getdate(), convert(datetime, left(convert(varchar, dateadd(MM, -1, getdate()), 112), 6) + ´01´) d_inicio, dateadd(SS, -1, convert(datetime, left(convert(varchar, getdate(), 112), 6) + ´01´)) d_fim
GOSTEI 0
Ricardonp
12/03/2008
Deixa eu colocar a situação exata pra você ver como se encaixaria, o codigo estático é esse:
Como que eu encaicho esse seu código nele?
eu não preciso mostrar as datas, eu preciso mostrar as tarefas de Agentes Externos que estão fora do prazo de solução.
SELECT "TipoTarefa", ´Fora do Prazo de Solução´ as Tipo, count("TipoTarefa")qtd FROM vw_tarefas Where "TempoSoluçãoTarefaExpirado" = ´Sim´ and "TipoTarefa" = ´Agentes Externos´ and "PrazoSoluçãoTarefa" BETWEEN convert(datetime,´01/02/2008´,103) AND convert(datetime,´01/03/2008´,103) Group by "TipoTarefa"
Como que eu encaicho esse seu código nele?
eu não preciso mostrar as datas, eu preciso mostrar as tarefas de Agentes Externos que estão fora do prazo de solução.
GOSTEI 0
Ricardonp
12/03/2008
[b:da8268a7b2]cara eu resolvi
o seu codigo é d++++
valeu mesmo!!!!
obrigado!!!![/b:da8268a7b2]
o seu codigo é d++++
valeu mesmo!!!!
obrigado!!!![/b:da8268a7b2]
GOSTEI 0
Emerson Nascimento
12/03/2008
não seria somente:
note que foi somente avaliar o mês que o problema foi resolvido.
SELECT "TipoTarefa", ´Fora do Prazo de Solução´ as Tipo, count("TipoTarefa") qtd FROM vw_tarefas Where "TempoSoluçãoTarefaExpirado" = ´Sim´ and "TipoTarefa" = ´Agentes Externos´ and Month("PrazoSoluçãoTarefa") = Month(Getdate()) Group by "TipoTarefa"
note que foi somente avaliar o mês que o problema foi resolvido.
GOSTEI 0
Emerson Nascimento
12/03/2008
na verdade faltou comparar o ano:
SELECT "TipoTarefa", ´Fora do Prazo de Solução´ as Tipo, count("TipoTarefa") qtd FROM vw_tarefas Where "TempoSoluçãoTarefaExpirado" = ´Sim´ and "TipoTarefa" = ´Agentes Externos´ and Year("PrazoSoluçãoTarefa") = Year(Getdate()) and Month("PrazoSoluçãoTarefa") = Month(Getdate()) Group by "TipoTarefa"
GOSTEI 0
Edu2099
12/03/2008
Tem que subtrair um mês do getdate() também neste caso que vc mandou.
Usar as funções month e year funcionam, mas o problema é que, pelo fato de serem justamente funções, o índice não funcionará. Provavelmente o banco fará um table scan.
Para garantir o uso do índice, o ideal é jogar as datas início e fim para variáveis e então compará-las na query.
Usar as funções month e year funcionam, mas o problema é que, pelo fato de serem justamente funções, o índice não funcionará. Provavelmente o banco fará um table scan.
Para garantir o uso do índice, o ideal é jogar as datas início e fim para variáveis e então compará-las na query.
GOSTEI 0