HQL中使用SQL的函数Datepart问题。

SELECTDatepart(dw,ec.date)fromExecutorCalendarec我想查出谋日期对应的是星期几。SQL能成功执行,转换成HQL该怎么写?这样... SELECT Datepart(dw,ec.date) from ExecutorCalendar ec
我想查出谋日期对应的是星期几。SQL能成功执行,转换成HQL该怎么写?这样写不对吗?
展开
 我来答
udbvfhp
2011-01-22 · TA获得超过290个赞
知道小有建树答主
回答量:611
采纳率:0%
帮助的人:294万
展开全部
HQL使用sql函数不靠谱,你用sql吧,你用hql能返回什么?不也是个字符串。

HQL是Hibernate的一套语法和标准,你写的查询语句必须符合它的要求,而对于Dialect(方言)只是充当了HQL到SQL的一个翻译官而已,它只能将HQL语句翻译成SQL语句,是单向的,不能把SQL翻译成HQL,明白了吧。所以对于SQL中的一些函数,它是不认识的。除非是各种数据库中通用的函数。

HQL之所以能够用在大部分数据库上,就在于它是各种数据库语句的子集,应该来说是是各种数据库通用的语句,只不过在执行的时候,需要相应数据库的翻译官,就是Dialect,翻译成相应数据支持的语句。

试想,如果HQL要是能用各种数据库中的函数,那岂不是太难制定统一的标准了吗?并且使用起来也是非常困难的。

如果实在想用HQL 那就 查出ec.date 再用java的Calendar类求一下星期几吧。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式