首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CreateCriteria和月份

CreateCriteria和月份
EN

Stack Overflow用户
提问于 2009-02-06 09:44:04
回答 2查看 458关注 0票数 1

是否可以在CreateCriteria-statement中使用MONTH?

NHibernate是否支持年和/或月?

我有一个类似select OBS.Lopnr from Obs obs2 where MONTH(OBS2.Datum)=11的sql语句。

致以最诚意的问候

垫子

EN

回答 2

Stack Overflow用户

发布于 2009-02-08 21:28:58

ICriteria支持arbitrary SQL as a restriction。因此,您可以这样做:

代码语言:javascript
复制
var criteria = session.CreateCriteria(typeof(Obs))
    .Add(Expression.Sql("MONTH({alias}.Datum) = ?", 11, NHibernateUtil.Int32);
var results = criteria.List<Obs>();

这将执行一个{别名}替换为NHibernate用于Obs表的别名的SQL查询。当然,这限制了您对其他数据库的可移植性,因为SQL现在嵌入到您的查询中。

另一件要记住的事情是,这里使用的名称是映射的属性和类名,而不是底层的列名和表名。

票数 1
EN

Stack Overflow用户

发布于 2009-02-06 16:20:10

我认为这在标准声明中是不可能的。在HQL查询中支持日期函数(年、月、日),因此可以通过这种方式使用它们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/519699

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档