2010-12-07 63 views
3

我在查詢時遇到了一些麻煩。Subsonic 3.0 ActiveRecord日期

在我的數據庫日期時間存儲爲YYYY-MM-DD HH:MM:SS

我有以下LINQ查詢:

var visitors = Visitor.All().Where(x=>x.Date_Moderated < dateTime).OrderByDescending(x => x.Date_Moderated).Take(limit); 

的問題是,這是翻譯成:

SELECT TOP (100) [t0].VisitorId, <COLUMNS TRUNCATED FOR BREVITY AND PRIVACY> 
FROM [dbo].[Visitor] AS t0 
WHERE ([t0].[Date_Moderated] < '07/12/2010 18:53:58') 
ORDER BY [t0].[Date_Moderated] DESC 

正如你所看到的日期參數不是正確的格式,SQL Server將其轉換爲美國的日期時間,所以當我實際上得到100時我沒有得到任何結果。

有誰知道如何使subsonic格式的日期正確嗎?或者,也可以是更好的方式來構建我的查詢。

問候, 羅布

回答

1

我已經改變我的查詢下面的解決了這個:

var myDb = new MyDB(); //Database context renamed for privacy 
var select = myDb.Select.Top("100") 
         .From("Visitor") 
         .Where("Date_Moderated") 
         .IsLessThan(dateTime.ToString("yyyy-MM-dd HH:mm:ss")) 
         .OrderDesc("Date_Moderated"); 

var visitors = select.ExecuteTypedList<Visitor>(); 
1

是否回答this question幫助嗎?

+0

不完全是,但感謝! :) – 2010-12-07 14:39:33