For a column of type varchar I could write such a query:
public IList<Order> GetByName(string orderName)
{
using (ISession session = NHibernateHelper.OpenSession())
{
return session.CreateCriteria<Order>().
Add(Restrictions.Like("Name", string.Format("%{0}%", orderName))).
List<Order>();
}
}
How do I write a similar LIKE-query for a column that has type datetime? Somehow:
public IList<Order> GetByDateTime(string str)
{
using (ISession session = NHibernateHelper.OpenSession())
{
return session.CreateCriteria<Order>()
.Add(Restrictions.Like(Projections.Cast(NHibernateUtil.String, Projections.Property("Created")),
'%' + str + '%'))
.List<Order>();
}
}
That is, if the method is passed the date and part-time (eg "25.03.2010 19"), then displays all orders are carried out in this period of time:
25.03.2010 19:22:00
25.03.2010 19:44:00
25.03.2010 19:59:00