W SQL Server 2008 miałbyś nową DATE
typ danych, którego możesz użyć, aby to osiągnąć:
SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN
CAST(GETDATE() AS DATE) AND DATEADD(DAY, 1, CAST(GETDATE() AS DATE))
CAST(GETDATE() AS DATE)
rzutuje bieżącą datę i godzinę na wartość tylko dla daty, np. return '2010-04-06' dla 6 kwietnia 2010. Dodanie jednego dnia zasadniczo wybiera wszystkie dzisiejsze wartości daty i godziny.
W SQL Server 2005 nie ma na to łatwego sposobu — najbardziej eleganckim rozwiązaniem, jakie znalazłem tutaj, jest użycie numerycznej manipulacji DATETIME w celu uzyskania tego samego wyniku:
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))