sql >> Base de Datos >  >> RDS >> Sqlserver

Obtenga la fila donde la columna de fecha y hora =hoy - novato del servidor SQL

En SQL Server 2008, tendría una nueva DATE tipo de datos, que podría usar para lograr esto:

SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN 
   CAST(GETDATE() AS DATE) AND DATEADD(DAY, 1, CAST(GETDATE() AS DATE))

El CAST(GETDATE() AS DATE) convierte la fecha y la hora actuales en un valor de solo fecha, p. devuelve '2010-04-06' para el 6 de abril de 2010. Agregar un día a eso básicamente selecciona todos los valores de fecha y hora de hoy.

En SQL Server 2005, no hay una manera fácil de hacer esto:la solución más elegante que encontré aquí es usar la manipulación numérica de DATETIME para lograr el mismo resultado:

SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN 
   CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME) AND 
   DATEADD(DAY, 1, CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME))