2013-04-09 42 views
3
BETWEEN CAST(GETDATE() AS DATE) AND DATEADD(WEEK, 4, CAST(GETDATE() AS DATE)) 

這就是你如何在mssql中完成的。我怎樣才能使用動態LINQ(或不管它叫什麼 - 就像不是C#,而是字符串)。動態LINQ:今天和四周前的比較日期

我會很感激任何幫助。

+0

閱讀18次,但沒有人能回答? – Chris 2013-04-09 13:56:11

+2

你是什麼意思「動態linq(無論它被稱爲 - 像不是C#,但字符串」? – Alex 2013-04-09 13:58:26

+1

我認爲它意味着''從一個在b「'而不是'b.Where(a => ...)' – harriyott 2013-04-09 14:01:41

回答

7

我認爲這是C#。

如果是的話,你很可能在尋找這樣的事情:

var theDate = {some date}; 
if (theDate <= DateTime.Today && theDate >= DateTime.Today.AddDays(-4 * 7)) 
{ 
    // stuff goes here 
} 

在LINQ而言,這真的取決於你正在嘗試做的,但是這應該給你的總體思路:

var foos = from foo in SomeQueryable 
    where foo.Date <= DateTime.Today 
    && foo.Date >= DateTime.Today.AddDays(-4 * 7) 
    select foo; 
+0

我很抱歉我的問題有點難以理解,但這就是我一直在尋找的,所以thx! – Chris 2013-04-10 07:07:09

0

如果你只需要知道如何在C#中比較不同的日期,則:
創建擴展:

public static DateTime AddWeeks(this DateTime date, int weeks) 
{ 
    return date.AddDays(7*weeks); 
} 

所以Linq中:

var now = DateTime.Now; 
whatever.Where(d => now.AddWeeks(-4) < d && d < now) 
1
var qryResult = (from tbl in dbcontext.Yourtable 
         where tbl.CheckDate >= DateTime.Today 
      && tbl.CheckDate <= System.Globalization.CultureInfo.InvariantCulture.Calendar.AddWeeks(DateTime.Today, 4)) 
      select tbl 
      ).ToList(); 
相關問題