Estoy escribiendo una consulta en la que quiero contar la cantidad de veces que contactamos a nuestro centro de llamadas por fecha. Parece bastante fácil, pero dado que el campo de fecha de contacto es un campo de fecha y hora, obtengo la hora, por lo que cuando agrupe por fecha de contacto (hora) cada instancia de fecha de contacto tiene un recuento de '1'. Entonces, quiero agrupar solo la fecha sin el tiempo. A continuación se muestra la expresión que utilizo para consultar la base de datos:Devolver fechas sin tiempos en una consulta LINQ
MyDataContext db = new MyDataContext();
var items = (from h in db.ContactHistories
group h by h.contact_dt into g
orderby g.Key
select new
{
contact_dt = g.Key,
item_count = g.Count()
}).Take(50);
He tratado de utilizar
h.contact_dt.ToShortDateString()
Pero eso no funciona desde SQL sabe nada de ToShortDateString(). Cualquier idea es grandemente apreciada.
Gracias!
EDIT:
El .Tomar (50) está en su lugar para limitar el número de registros llego hasta añado los selectores de fecha y una cláusula where, así que no se deje todos los registros de 400K. ;)
@Jon Skeet hace el tipo predeterminado para un DateTime (SQL) es un DateTime (.NET) – msarchet
Vea http://msdn.microsoft.com/en-us/library/bb882657.aspx para obtener una lista de todos Métodos compatibles con DateTime para LINQ to SQL –
@Hightechrider: Eso es genial, gracias. No lo sabía antes. Se editará para promocionar el enlace ... –