hql文でサポートされるローカル時間関数


hql文でサポートされるローカル時間関数

1、UNIX_TIMESTAMP()    , 1970 
2、FROM_UNIXTIME        
3、current_date()    
4、current_time()    
5、current_timestamp()     
6、TO_DAYS()    
7、FROM_DAYS       

例:
1、
from Article where UNIX_TIMESTAMP(addTime) > UNIX_TIMESTAMP(current_timestamp()) - 24 * 60 * 60
2、
from Article where TO_DAYS(addTime) > TO_DAYS(current_timestamp()) - 1
注意:hql文では推奨されません
from Article where addTime > current_date()-1という書き方は、通常は問題ありませんが、特殊な場合には異常が発生します.たとえば、現在の日付が11月1日の場合、current_date()-1は日付1970-01-01を生成し、条件照会時に何も照会できません.hqlテストを書くことができます
select current_date() - 1 from Article;ここでArticleは1つのエンティティクラスであり、テスト時にデータベースが存在するサーバ時間をある月の1番に変更し、クエリーを印刷するlistは結果セットの1つを返します.

String hql = "select current_date() - 1 from Article";
List<Objcec> ret = session.createQuery(hql).setMaxResults(1).list();
if(ret.size() > 0){
	Object entry = ret.get(0);
	System.out.println(entry);
}else{
	System.out.println("null");
}

添付:mysqlがサポートする時間処理関数
DATE_ADD()、DATE_SUB()、TO_DAYS()、FROM_DAYS()、STR_TO_DATE()、CURRENT_TIMESTAMP()、UNIX_TIMESTAMP()、FROM_UNIXTIME()