Estoy buscando una buena declaración SQL para seleccionar todas las filas del día anterior de una tabla. La tabla contiene una columna de fecha y hora. Estoy usando SQL Server 2005.
sql
sql-server
sql-server-2005
rudimenter
fuente
fuente
SELECT *
devolverá las fechas con sus horas originales.SELECT getdate(),dateadd(day,datediff(day,1,GETDATE()),0)
obtengo:2016-02-01 10:27:54.733 2016-01-31 00:00:00.000
Para obtener el valor "hoy" en SQL:
Para obtener "ayer":
Para obtener "hoy menos X días": cambie -1 por -X.
Entonces, para todas las filas de ayer, obtienes:
fuente
Parece que faltaba la respuesta obvia. Para obtener todos los datos de una tabla (Ttable) donde la columna (DatetimeColumn) es una fecha y hora con una marca de tiempo, se puede utilizar la siguiente consulta:
Esto se puede cambiar fácilmente a hoy, el mes pasado, el año pasado, etc.
fuente
DatetimeColumn BETWEEN DATEADD(day, DATEDIFF(day, 1, GETDATE()) ,0) AND DATEADD(day, DATEDIFF(day, 0, GETDATE()), 0)
que tiene que evaluar el DATEDIFF () en cada filafuente
Es un hilo muy antiguo, pero aquí está mi opinión. En lugar de 2 cláusulas diferentes, una mayor que y una menor que. Utilizo la siguiente sintaxis para seleccionar registros de una fecha. Si desea un intervalo de fechas, las respuestas anteriores son el camino a seguir.
En el caso anterior, X será -1 para los registros de ayer
fuente
No puedo probarlo ahora, pero:
fuente
Esto debería hacerlo:
fuente
En SQL Server, haga lo siguiente:
Debe convertir ambos lados de la expresión hasta la fecha para evitar problemas con el formato de hora.
Si necesita controlar el intervalo con más detalle, debería intentar algo como:
fuente
Otra forma de decirlo "Ayer" ...
Es posible que esto no funcione bien el 1 de enero, así como el primer día de cada mes. Pero sobre la marcha es eficaz.
fuente
Bueno, es más fácil convertir la columna de fecha y hora a la fecha y que comparar.
fuente
subdate (ahora (), 1) devolverá la marca de tiempo de ayer El siguiente código seleccionará todas las filas con la marca de tiempo de ayer
fuente