Como posso consultar o campo DataTime da base de dados dentro de um determinado intervalo?
Estou usando o SQL SERVER 2005
Código de erro abaixo
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Note que eu preciso de ter filas dentro de um determinado intervalo de tempo. Exemplo, 10 minutos de intervalo de tempo.
Atualmente SQL retorna com sintaxe incorreta perto de '12'."
Falhou um único sinal de citação:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Também é recomendado o uso do formato ISO8601 YYYY-MM-DDThh:mm:ss.nnn[ Z ], pois este não dependerá do seu servidor's cultura local.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Você precisa de citações ao redor da string que você'está tentando passar como uma data, e você também pode usar BETWEEN aqui:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Veja a resposta à pergunta seguinte para exemplos sobre como converter explicitamente as cadeias de caracteres em datas enquanto especifica o formato:
https://stackoverflow.com/questions/207190/sql-server-string-to-date-conversion
SELECT *
FROM TABLENAME
WHERE [DateTime] >= '2011-04-12 12:00:00 AM'
AND [DateTime] <= '2011-05-25 3:35:04 AM'
Se isto não funcionar't, por favor escreva a sua tabela e coloque-a aqui. isto irá ajudar-nos a obter a resposta correcta rapidamente.