phoenix日期查詢

2021-09-26 06:20:42 字數 1048 閱讀 1123

repository層

@query(nativequery = true, value = "select * from alarms where id = :id and alarmtime = to_date(:alarmtime)")

optionalfindbykey(@param("id") long id, @param("alarmtime") string alarmtime);

注意,可能會有人用to_number(alarmtime) = :alarmtime(alarmtime傳時間戳)來比較,這樣是不正確。這種方法是先將整個alarmtime這一列做轉換,然後再比較,如果資料量太大,速度會急速下降。所以sql語句最好不要整個列加方法,而是應該對要比較的條件處理和列的原始值比較。

service層

public alarm getbyidandalarmtime(long id, long alarmtime) 

timezone tz = timezone.getdefault();

int offset = tz.getoffset(system.currenttimemillis());

date alarmdate = new date(alarmtime - offset);

******dateformat ******dateformat = new ******dateformat("yyyy-mm-dd hh:mm:ss.sss");

string format = ******dateformat.format(alarmdate);

optionaloptionalalarm = alarmrepository.findbykey(id, format);

if (!optionalalarm.ispresent())

return optionalalarm.get();

}

這裡需要注意兩點:1、時間精確到毫秒的格式正則。2、在phoenix中to_date是有時差的,所以呼叫之前要先獲取系統當前時區,調整alarmtime。

Phoenix實現分頁查詢

1 利用offset語法,官網的語法 elect from test limit 1000 select from test limit 1000 offset 100 2 公式如下 select from test limit pagesize offset pagenum 1 pagesize ...

Phoenix 九 分頁查詢

所謂分頁查詢就是從符合條件的起始記錄,往後遍歷 頁大小 的行。資料庫的分頁是在server端完成的,避免客戶端一次性查詢到大量的資料,讓查詢資料資料分段展示在客戶端。對於phoenix的分頁查詢,怎麼使用?效能怎麼樣?需要注意什麼?將會在文章中通過示例和資料說明。limit offset start...

mysql日期查詢 mysql 查詢日期

檢視本月資料 select from content publish where date format publish time,y m date format date sub curdate interval 0 month y m 檢視上個月資料 select from content pu...