-1

我是休眠和 hql 的新手。谁能帮我以下查询的 hql 等效项是什么?

SELECT  CONVERT(DATETIME,
LEFT(CAST([run_date] AS VARCHAR),4) + '-' +  
SUBSTRING(CAST([run_date] AS VARCHAR),5,2) + '-' + 
SUBSTRING(CAST([run_date] AS VARCHAR),7,2) + ' ' + 
LEFT(RIGHT('000000' + CAST([run_time] AS VARCHAR),6),2) + ':' + 
SUBSTRING(RIGHT('000000' + CAST([run_time] AS VARCHAR),6),3,2) + ':' + 
SUBSTRING(RIGHT('000000' + CAST([run_time] AS VARCHAR),6),5,2)
,121)
FROM sysjobhistory

谢谢

4

3 回答 3

1

我不会为此创建 HQL 查询。相反,我只会使用简单的 hql 来读取run_time并使用带有一些 Date Fromate 的 ResultTransfomer 来获得最终结果。

于 2012-10-29T14:39:47.470 回答
0

你真的在这里折磨NHibernate。诚然,与ssysobjhistory有一些奇怪的模式,但你正在做的不是 NHibernate 方式。run_daterun_timeint

我这样做的方式是编写一个自定义来在本机实例和这两列IUserType之间进行转换。DateTime

于 2012-10-29T14:43:55.793 回答
0

由于 sysjobhistory 特定于特定的 RDBMS,因此尝试将其定义为 DB 本身中的存储过程或用户函数,然后简单地从 HQL 调用它可能是一个好主意。

于 2012-10-30T14:31:47.747 回答