如果我有一个 Linq
至 SQL
像这样的表达:
from subscription in dbContext.Subscriptions
where subscription.Expires > DateTime.Now
select subscription
我希望它使用 SQL Server
GETDATE()
函数而不是机器运行的时间 C#
程序。下一个问题是如何翻译:
DateTime.Now.AddDays(2)
对此:
DATEADD(dd, 2, GETDATE())
最佳答案
试试 this :
[Function(Name="GetDate", IsComposable=true)]
public DateTime GetSystemDate()
{
MethodInfo mi = MethodBase.GetCurrentMethod() as MethodInfo;
return (DateTime)this.ExecuteMethodCall(this, mi, new object[]{}).ReturnValue;
}
编辑 :这需要成为您的 DataContext 类的一部分。
现在,您可以在查询中使用 GetSystemDate() 而不是 DateTime.Now。
至于日期差异,请查看 System.Data.Linq.SqlClient 命名空间,尤其是 SqlMethods 类的 DayDiffXXX 函数。
关于sql - 如何在 Linq to SQL 表达式中使用 SQL GETDATE() 和 DATEADD()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/200617/