2010-12-07 3 views
3

У меня небольшая проблема с запросом.Subsonic 3.0 ActiveRecord с датами

В моей DateTimes базы данных хранятся в виде 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

Смежные вопросы