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))