Op SQL Server 2008 zou u een nieuwe DATE
. hebben gegevenstype dat u hiervoor zou kunnen gebruiken:
SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN
CAST(GETDATE() AS DATE) AND DATEADD(DAY, 1, CAST(GETDATE() AS DATE))
De CAST(GETDATE() AS DATE)
werpt de huidige datum en tijd naar een alleen-datumwaarde, b.v. retourneer '2010-04-06' voor 6 april 2010. Als je daar één dag aan toevoegt, worden in feite alle datetime-waarden van vandaag geselecteerd.
In SQL Server 2005 is er geen gemakkelijke manier om dit te doen - de meest elegante oplossing die ik hier vond is het gebruik van numerieke manipulatie van de DATETIME om hetzelfde resultaat te bereiken:
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))