ssh
Outubro 14, 2011, 1:53pm
#1
Pessoal, preciso selecionar uma query somente entre um certo intervalo de tempo. por exemplo do dia 01/12/2010 até 01/12/2011 . e não estou conseguindo fazer funcionar direito o comando.
OBS: Uso SQL Server, e o tipo de dado da coluna é datetime.
O que tentei fazer:
SELECT * FROM tabLogUsuario
WHERE datCadastro BETWEEN 2010/09/10 AND 2011/10/10
Mas a query não retorna nenhuma linha.
Alguém pode me ajudar?
1 curtida
Está usando java?
Use preparadstatement, por favor e evite essas coisas de criar a data e a string na mão.
ssh
Outubro 14, 2011, 1:57pm
#3
Estou sim, mas ainda nem cheguei a implementar essa query no java, estou fazendo o teste diretamente pelo SQL Server Management Studio
Edit:
E não funciona!
SELECT * FROM TableData WHERE Data = "2002-02-28"
Daqui http://www.linhadecodigo.com.br/Artigo.aspx?id=946 (para o MSSQL 2000, mas provavelmente não mudou).
Você está colocando as aspas simples na data?
Algo assim:
SELECT * FROM tabLogUsuario
WHERE datCadastro BETWEEN '2010/09/10' AND '2011/10/10'
ssh
Outubro 16, 2011, 7:29pm
#6
Sim, coloquei as aspas. e nada.
Acabo de fazer o teste, criei um banco de dados e uma tabela contendo uma coluna do tipo datetime
Executei o select
select * from teste where datas between '2011-08-10' and '2011-16-10';
E a saída foi
datas
2011-10-16 00:00:00.000
2011-10-08 00:00:00.000
ssh
Outubro 17, 2011, 11:32am
#8
[quote=drsmachado]Acabo de fazer o teste, criei um banco de dados e uma tabela contendo uma coluna do tipo datetime
Executei o select
select * from teste where datas between '2011-08-10' and '2011-16-10';
E a saída foi
datas
2011-10-16 00:00:00.000
2011-10-08 00:00:00.000
[/quote]
Olá, fiz a seguinte query:
SELECT * FROM tabLogUsuario
WHERE datCadastro BETWEEN '2011-01-10' AND '2011-01-12'
E a saída foi:
Aparentemente esse resultado está errado, não está?
Qual o formato da entrada? YYYY/MM/DD?
help me. thanks
Não, meu camarada.
O padrão suportado pelo banco de dados é yyy-MM-dd hh:mm:ss.SSS
A formatação da data é preocupação na camada do aplicativo.
evefuji
Outubro 17, 2011, 12:20pm
#10
se quer definir o formato, usa a função convert do sql server http://www.w3schools.com/sql/func_convert.asp
ssh
Outubro 17, 2011, 12:27pm
#11
Pessoal, por favor, reparem no meu comando select e no resultado.
aparemente ele trás resultados que não está entre o que eu pedi.
Seria pra trazer resultado entre o dia 10 e 12 do mes 1 de 2011, correto?
SELECT * FROM tabLogUsuario
WHERE datCadastro BETWEEN '2011-01-10' AND '2011-01-12'
E aparentemente ele trás todos do mes 10.
Realmente está certo isso?
é o seguinte, eles estão passando pra você como fazer mas não te explicaram o por que.
Você tem que ver como o banco interpreta data, eu estava com dificuldades em localizar também pelo seguinte fator.
A data no Brasil é configurada como DD/MM/AAAA, e no meu banco estava configurado como MM/DD/AA.
Entendeu? a data estava configurada de outra maneira…