¿Cómo puedo consultar el campo de la base de datos DateTime dentro de un rango determinado?
Estoy usando SQL SERVER 2005
El código de error es el siguiente
SELECT *
FROM TABLENAME
WHERE DateTime >= 12/04/2011 12:00:00 AM
AND DateTime <= 25/05/2011 3:53:04 AM
Tenga en cuenta que necesito obtener filas dentro de un determinado rango de tiempo. Por ejemplo, un rango de tiempo de 10 minutos.
Actualmente SQL retorno con Sintaxis incorrecta cerca de '12'."
Te faltó el signo de comillas simples:
SELECT *
FROM TABLENAME
WHERE DateTime >= '12/04/2011 12:00:00 AM' AND DateTime <= '25/05/2011 3:53:04 AM'
Además, se recomienda utilizar el formato ISO8601 YYYY-MM-DDThh:mm:ss.nnn[ Z ], ya que éste no dependerá de la cultura local de su servidor.
SELECT *
FROM TABLENAME
WHERE
DateTime >= '2011-04-12T00:00:00.000' AND
DateTime <= '2011-05-25T03:53:04.000'
Necesitas las comillas alrededor de la cadena que intentas hacer pasar por una fecha, y también puedes usar BETWEEN aquí:
SELECT *
FROM TABLENAME
WHERE DateTime BETWEEN '04/12/2011 12:00:00 AM' AND '05/25/2011 3:53:04 AM'
Consulte la respuesta a la siguiente pregunta para ver ejemplos sobre cómo convertir explícitamente cadenas en fechas mientras se especifica el 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'
Si esto no funciona, por favor, escriba su tabla y publíquela aquí. Esto nos ayudará a obtener la respuesta correcta rápidamente.