Java 如何在HQL中比较时间戳和日期?
有一个映射到类的时间戳字段Java 如何在HQL中比较时间戳和日期?,java,hibernate,Java,Hibernate,有一个映射到类的时间戳字段有序\u ts。我需要在哪里找到实例 1) (ordered_ts为空)或 2) (ordered\u tscurrent\u date) 这是我试过的。这是HQL语法(不特定于数据库) SELECT . . . WHERE (CAST(coalesce(t.ordered_ts, TO_TIMESTAMP('2000-01-01 00:00:00', 'YYYY-MM-DD HH24:MI:SS')) as DATE) <> CURRENT_DATE
有序\u ts
。我需要在哪里找到实例
1) (ordered_ts
为空)或
2) (ordered\u ts
current\u date)
这是我试过的。这是
HQL
语法(不特定于数据库)
SELECT . . .
WHERE (CAST(coalesce(t.ordered_ts, TO_TIMESTAMP('2000-01-01 00:00:00',
'YYYY-MM-DD HH24:MI:SS')) as DATE) <> CURRENT_DATE)
(PS底层数据库是mysql,但我正在寻找SQL的查询 使用 然后
SELECT . . . WHERE ordered_ts_date <> CURRENT_DATE)
选择。订购地点(当前日期)
谢谢。但是从UNIXTIME开始就是mysql语法。它将在hibernatehql
中工作吗?因此我需要在映射bean中创建一个额外的字段ordered\u ts\u date
?或者动态创建ordered\u ts\u date
,并在准备好的语句中插入?这似乎有点过分了。应该有一个简单的解决办法。我的bean有ordered\u ts
字段。应该有一种方法来比较有序日期
与当前日期
您应该创建有序日期
作为方法变量,并在插入HQL之前进行空指针检查。
SELECT . . .
WHERE (FROM_UNIXTIME(coalesce(t.ordered_ts, TO_TIMESTAMP('2000-01-01 00:00:00',
'YYYY-MM-DD HH24:MI:SS')) as DATE) <> CURRENT_DATE)
Date ordered_ts_date= new Date(ordered_ts.getTime());
SELECT . . . WHERE ordered_ts_date <> CURRENT_DATE)