year one mssql month interval examples example day sql linq-to-sql

one - ¿Cómo uso SQL''s GETDATE() y DATEADD() en una expresión Linq to SQL?



mssql dateadd example (3)

Prueba this :

[Function(Name="GetDate", IsComposable=true)] public DateTime GetSystemDate() { MethodInfo mi = MethodBase.GetCurrentMethod() as MethodInfo; return (DateTime)this.ExecuteMethodCall(this, mi, new object[]{}).ReturnValue; }

EDITAR : esto debe ser parte de tu clase DataContext.

Ahora puede usar GetSystemDate () en lugar de DateTime.Now en sus consultas. En cuanto a las diferencias de fecha, eche un vistazo al espacio de nombres System.Data.Linq.SqlClient, especialmente las funciones DayDiffXXX de la clase SqlMethods.

Si tengo una expresión de Linq a SQL como esta:

from subscription in dbContext.Subscriptions where subscription.Expires > DateTime.Now select subscription

Quiero que esto use la función GETDATE() SQL Servers en lugar de la hora de la máquina que ejecuta el programa C# .

La siguiente pregunta sería cómo traducir esto:

DateTime.Now.AddDays(2)

a esto:

DATEADD(dd, 2, GETDATE())



Si no le importa consultar la base de datos antes de cada uso, sugeriría la siguiente solución: use ExecuteQuery en un lugar para obtener la fecha en el contexto de datos de esta manera:

public partial class YourDataContext { public DateTime GetDate() { return ExecuteQuery<DateTime>("SELECT GETDATE()").First(); } }

y luego puedes escribir

from subscription in dbContext.Subscriptions where subscription > dbContext.GetDate().AddDays(2) select subscription