通过HQL实现TSQL中的日期时间和时间跨度算法
我需要创建一个HQL where子句,其形式如下:通过HQL实现TSQL中的日期时间和时间跨度算法,tsql,hql,Tsql,Hql,我需要创建一个HQL where子句,其形式如下: where tbl1.DateTimeField + tbl2.TimeSpanField >= :someDateTimeParameter DateTime字段的类型为DateTime TimeSpan字段的类型为BigInt(这是最佳选项吗?) someDateTimeParameter是一个DateTime 如上所述编写HQL查询几乎可以准确地转换为TSQL,但是这显然是无效的 我需要做什么才能使where子句起作用?有什么我可
where tbl1.DateTimeField + tbl2.TimeSpanField >= :someDateTimeParameter
DateTime字段的类型为DateTime
TimeSpan字段的类型为BigInt(这是最佳选项吗?)
someDateTimeParameter是一个DateTime
如上所述编写HQL查询几乎可以准确地转换为TSQL,但是这显然是无效的
对于3个使用dateadd或datediff(google表示t-sql+函数名)我最终将时间跨度存储为1/1/1900的日期时间偏移量,如下所示
protected readonly DateTime leadTimeAdjustment = new DateTime(1900, 1, 1);
[Obsolete("For use by NHibernate only.")]
public virtual DateTime _leadTime { get; protected set; }
public virtual TimeSpan LeadTime
{
get { return _leadTime - leadTimeAdjustment; }
set { _leadTime = leadTimeAdjustment.Add(value); }
}