Cómo obtener únicamente la fecha de un campo DateTime de SQL Server

16 jul. 2008
Estaba realizando una consulta en T-SQL para mostrar el número de pedidos realizados por día entre dos fechas. Algo relativamente simple, ¿verdad?

Pues aunque parezca increíble, SQL Server no proporciona una función sencilla que permita obtener únicamente la fecha de un campo de tipo DateTime ignorando la hora almacenada. En el caso del informe que quería realizar, me impedía agrupar correctamente los pedidos por fecha porque el campo DateTime también almacena la hora.

Afortunadamente, Anatoly Lubarsky nos proporciona una solución bastante sencilla.
SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, CAMPO_FECHA))
Donde CAMPO_FECHA es el nombre del campo de la tabla que contiene la fecha que quieres procesar. También puedes utilizar GETDATE() en vez de CAMPO_FECHA para obtener únicamente la fecha de hoy.

Esta es la consulta SQL resultante:

SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, DateCreated)) as OrderDate, 
COUNT(*) as OrdersCount FROM CommerceOrders
GROUP BY DATEADD(dd, 0, DATEDIFF(dd, 0, DateCreated))
ORDER BY OrderDate
Vuestros comentarios son bienvenidos.
comments powered by Disqus
subir