2012-11-08 43 views
1

我想使用日期列排序數據,但該列按字符串排序,而不是按日期排序。如何解決這個問題呢?nhibernate中按日期排序的列正在按字符串順序工作

代碼:

var projection = Projections.SqlFunction("lower", NHibernateUtil.String,Projections.Property("datecolumn1")); 

if(order="desc")queryOver = queryOver.OrderBy(projection).Desc; 
else queryOver = queryOver.OrderBy(projection).Asc; 

結果:(由升序排序)

8/7/2012 5:34 AM 
11/7/2012 7:21 AM 
11/7/2012 7:21 AM 
11/7/2012 7:21 AM 
11/7/2012 7:21 AM 
8/27/2012 9:35 AM 

回答

4

的片段上方示出了有一個string投影。所以結果被排序爲一組字符串值。 (並且這可能導致取決於sql server默認格式DateTime.ToString的不同結果)。

按日期排序它添加一個不同的投影:

var projection = Projections.Property("datecolumn1")); 

現在應該由本地的SQL Server訂購DateTime

相關問題