Principales respuestas
Restar dos fechas en Linq to SQL

Pregunta
-
Saludos a todos, tengo que restar dos fechas que estan en mi mdb, y que me de la diferencias en meses que hay, por ejemplo
2/2/2009 - 15/4/2009 = El resultado debe ser: 3 Meses
gracias
Desarrollo de Sistemasmartes, 30 de junio de 2009 4:44
Respuestas
-
Saludos A todos, la verdad pense que era mas dificil pero en realidad fue super facil, con linq tambien existen los metodos o funciones que tiene sql server, solo tenia que saber en que nombre de espacio estaba y listo
using
System.Data.Linq.SqlClient
en este espacio de nombre hay muchos metodos, pero solo me voy a referir al SqlMethods. ?, solo tienes que escoje la que mejor se adapte a tu proyecto y de igual forma obtendrá los resultados. asi que les dejo la diferencias y las equivalentes, para que si alguien en un futuro la necesite.
Gracias y saludos a todos. estamos para compartir nuestros conocimientos y darle el toque que todos necesitamos, porque esto nunca acaba....
con T-SQL es:
SET
DATEFORMAT DMY
SELECT DATEDIFF(MONTH, [FultimoContactado], GETDATE()) as Diferencia
FROM [ES].[tbcontactos] AS pa
y te da la diferencia en meses con
LINQ to SQL es:
paDataContext
dc = new paDataContext();
var dat = from dt in dc.tbcontactos
where SqlMethods.DateDiffMonth(dt.FultimoContactado, DateTime.Now) = a tu condición
orderby dt.FultimoContactado
select dt;
y ya queda todo bien, en realidad solo hay que jugar mas con LINQ y aprenderas muchas cosas que antes tenias que hacer bastante línea de codigo para
tener los resultados.
Estamos a la orden cualquier consulta me escriben y si me la se te la respondo....
Desarrollo de Sistemas- Marcado como respuesta Rubén E. Tamayo jueves, 2 de julio de 2009 5:08
jueves, 2 de julio de 2009 5:08
Todas las respuestas
-
En este ejemplo hago el calculo de la diferencia entre dos fechas, tu puedes utilizar la propiedad Month de la fecha para saber en que mes se encuentra, por ejemplo results.ShippedDate.value.Month - results.OrderDate.Value.Month, pero el calculo no va a ser preciso, ya que hay muchos factores involucrados como son las diferencias de días entre los meses etc. Pero básicamente este ejemplo te debe de regresar un valor en días con el que puedes comenzar a hacer los cálculos que requieres.
Dim db As New NWDataContext
Dim w = From results In db.Orders Select results.OrderDate, results.ShippedDate, s = results.OrderDate.Value - results.ShippedDate.Value
For Each item In w
Console.WriteLine(item.s.Days)
Next
Saludos
Developer Evangelist Mexico- Propuesto como respuesta Jaime Sanchez jueves, 2 de julio de 2009 4:48
jueves, 2 de julio de 2009 4:46 -
Saludos A todos, la verdad pense que era mas dificil pero en realidad fue super facil, con linq tambien existen los metodos o funciones que tiene sql server, solo tenia que saber en que nombre de espacio estaba y listo
using
System.Data.Linq.SqlClient
en este espacio de nombre hay muchos metodos, pero solo me voy a referir al SqlMethods. ?, solo tienes que escoje la que mejor se adapte a tu proyecto y de igual forma obtendrá los resultados. asi que les dejo la diferencias y las equivalentes, para que si alguien en un futuro la necesite.
Gracias y saludos a todos. estamos para compartir nuestros conocimientos y darle el toque que todos necesitamos, porque esto nunca acaba....
con T-SQL es:
SET
DATEFORMAT DMY
SELECT DATEDIFF(MONTH, [FultimoContactado], GETDATE()) as Diferencia
FROM [ES].[tbcontactos] AS pa
y te da la diferencia en meses con
LINQ to SQL es:
paDataContext
dc = new paDataContext();
var dat = from dt in dc.tbcontactos
where SqlMethods.DateDiffMonth(dt.FultimoContactado, DateTime.Now) = a tu condición
orderby dt.FultimoContactado
select dt;
y ya queda todo bien, en realidad solo hay que jugar mas con LINQ y aprenderas muchas cosas que antes tenias que hacer bastante línea de codigo para
tener los resultados.
Estamos a la orden cualquier consulta me escriben y si me la se te la respondo....
Desarrollo de Sistemas- Marcado como respuesta Rubén E. Tamayo jueves, 2 de julio de 2009 5:08
jueves, 2 de julio de 2009 5:08 -
hola a todos... pues para comenzar tengo un codigo en wcfservice.svc.cs donde quiero
restar dos fechas y obtener los anos el cual es el siguiente ya que lo saque de este blog:#region Miembros de IService1
public List<Viajes> eventovacaciones(DateTime FechaAlta)
{
DataClasses1DataContext db = new DataClasses1DataContext();
var vacas = from d in db.Viajes
where SqlMethods.DateDiffYear(d.FechaAlta, DateTime.Now) = 3
orderby d.FechaAlta
select d;
return vacas.ToList();
}#endregion
pero me sale un error que dice que no se puede convertir implicitamente el tipo int en boolademas lo que quiero es que me de el resultado de los anos para yo manipular ese dato en otras operaciones, me podrian ayudar???
jueves, 8 de octubre de 2009 7:13