복붙노트

[SQL] 어떻게 Linq에 SQL로 표현에서 SQL GETDATE ()와 DATEADD ()를 사용합니까?

SQL

어떻게 Linq에 SQL로 표현에서 SQL GETDATE ()와 DATEADD ()를 사용합니까?

이 같은 SQL 식에 Linq에있는 경우 :

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

나는이 대신 C # 프로그램을 실행하는 시스템의 시간의 SQL 서버 GETDATE () 함수를 사용하고 싶습니다.

다음 질문이 번역하는 방법이 될 것입니다 :

DateTime.Now.AddDays(2)

이에:

DATEADD(dd, 2, GETDATE())

해결법

  1. ==============================

    1.이 시도:

    이 시도:

    [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 기능을.

  2. ==============================

    2.이 같은 데이터 컨텍스트에 날짜를 얻기 위해 한 장소에서 사용하는 executeQuery : 당신이 매일 사용하기 전에 데이터베이스를 조회 괜찮다면, 나는 다음과 같은 해결 방법을 제안합니다 :

    이 같은 데이터 컨텍스트에 날짜를 얻기 위해 한 장소에서 사용하는 executeQuery : 당신이 매일 사용하기 전에 데이터베이스를 조회 괜찮다면, 나는 다음과 같은 해결 방법을 제안합니다 :

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

    그리고 당신은 쓸 수 있습니다

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

    3.당신은 SQL http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions의 모든 권한을 얻기 위해하는 executeQuery를 사용할 수 있습니다. 영문

    당신은 SQL http://weblogs.asp.net/scottgu/archive/2007/08/27/linq-to-sql-part-8-executing-custom-sql-expressions의 모든 권한을 얻기 위해하는 executeQuery를 사용할 수 있습니다. 영문

    나는 그것이 ADO.NET하지만 이상 약간의 이득 (또는 아마도 contrairy에)처럼 보인다 알고있다.

  4. from https://stackoverflow.com/questions/200617/how-do-i-use-sqls-getdate-and-dateadd-in-a-linq-to-sql-expression by cc-by-sa and MIT license