Usuário com melhor resposta
Select entre datas e horas

Pergunta
-
Ola, eu preciso fazer um Select
entre datas e horas, por exemplo:
select count(*) from tabela t where t.data between '2015-08-01' and '2015-08-31' AND entre a horario '11:00:00' and '11:59:59'
preciso que seja neste intervalo de dias e nesse intervalo de horas.
Como poderia fazer?
obrigado
Respostas
-
voce pode usar a função DATEDIFF
SELECT DATEDIFF(hour, '2015-08-01 11:00:00' , '2015-08-31 '11:59:59');
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Sugerido como Resposta Erick WendelMVP quinta-feira, 21 de janeiro de 2016 19:52
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 15:32
-
Nesse caso, é bom você salvar o registro da data em uma coluna datetime, com a data e hora juntas.
Aí na sua consulta ficaria algo do tipo:
select count(*) from tabela t where t.data between '2015-08-01 00:00:00' and '2015-08-31 23:59:59'
Se você tem duas colunas, o que não acho muito bom, você teria que fazer assim:
select count(*) from tabela t where convert(datetime,(convert(varchar(10),t.data,120) + ' ' + t.horario),120) between '2015-08-01 00:00:00' and '2015-08-31 23:59:59'
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 15:33
-
Boa tarde,
Sua tabela possui colunas separadas para data e hora? Então experimente dessa forma:
select count(*) from tabela t where t.data between '2015-08-01' and '2015-08-31' AND t.horario between '11:00:00' and '11:59:59'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 15:33
Todas as Respostas
-
Nesse caso, é bom você salvar o registro da data em uma coluna datetime, com a data e hora juntas.
Aí na sua consulta ficaria algo do tipo:
select count(*) from tabela t where t.data between '2015-08-01 00:00:00' and '2015-08-31 23:59:59'
Se você tem duas colunas, o que não acho muito bom, você teria que fazer assim:
select count(*) from tabela t where convert(datetime,(convert(varchar(10),t.data,120) + ' ' + t.horario),120) between '2015-08-01 00:00:00' and '2015-08-31 23:59:59'
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 15:33
-
Boa tarde,
Sua tabela possui colunas separadas para data e hora? Então experimente dessa forma:
select count(*) from tabela t where t.data between '2015-08-01' and '2015-08-31' AND t.horario between '11:00:00' and '11:59:59'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 15:33
-
voce pode usar a função DATEDIFF
SELECT DATEDIFF(hour, '2015-08-01 11:00:00' , '2015-08-31 '11:59:59');
Por favor, lembre-se de “Marcar como Resposta” as respostas que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.- Sugerido como Resposta Erick WendelMVP quinta-feira, 21 de janeiro de 2016 19:52
- Marcado como Resposta Marcos SJ sexta-feira, 22 de janeiro de 2016 15:32
-
Boa tarde,
Por falta de retorno do usuário, esta thread será encerrada.
Caso seja necessário, por gentileza, abra uma thread nova.
AtenciosamenteMarcos SJ
Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.