In SQL Server 2008 avresti un nuovo DATE
tipo di dati, che potresti utilizzare per ottenere ciò:
SELECT (list of fields)
FROM dbo.YourTable
WHERE dateValue BETWEEN
CAST(GETDATE() AS DATE) AND DATEADD(DAY, 1, CAST(GETDATE() AS DATE))
Il CAST(GETDATE() AS DATE)
esegue il cast della data e dell'ora correnti su un valore di sola data, ad es. restituisce '2010-04-06' per il 6 aprile 2010. L'aggiunta di un giorno a questo fondamentalmente seleziona tutti i valori datetime di oggi.
In SQL Server 2005, non esiste un modo semplice per farlo:la soluzione più elegante che ho trovato qui è utilizzare la manipolazione numerica di DATETIME per ottenere lo stesso risultato:
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))