我正在尝试使用日期列对数据进行排序,但该列排序为字符串而不是日期。如何解决这个问题?
代码:
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
答案 0 :(得分:4)
上面的代码段显示有string
投影。因此,结果将被排序为一组字符串值。 (这可能导致不同的结果依赖于sql server默认的DateTime.ToString
格式)。
要按日期对其进行排序,请添加其他投影:
var projection = Projections.Property("datecolumn1"));
现在它应该由本机SQL Server DateTime
类型