我有一個數(shù)據(jù)庫,我也在為用戶在數(shù)據(jù)庫上執(zhí)行的每次更新保存日志。我想檢查用戶是否在 24 小時內更新數(shù)據(jù),然后更新日志,否則如果數(shù)據(jù)更新超過一天,則插入新日志而不是更新當天的日志。為此,我需要為插入數(shù)據(jù)的時間設置上限和下限。我寫了一個函數(shù)來檢查數(shù)據(jù)是否在 24 小時后更新,但我不知道一天的上限和下限是什么。// returns 24 hours records, by Id and Crop... private FarmerCropDataLog findLogByIdAndCrop(Farmer farmer, Crop cropData) { String farmerId = farmer.getId(); // TODO Auto-generated method stub Query query = new Query(); query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.FARMER_ID).is(farmerId)); query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.CROP).is(Crop.valueOf(Crop.class, cropData.name()))); query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.CREATION_TIME).lt(UPPER_BOUND)); query.addCriteria(Criteria.where(FarmerCropDataLog.Constants.CREATION_TIME).gte(LOWERBOUND)); List<FarmerCropDataLog> logData = farmerCropDataLogDao.runQuery(query, FarmerCropDataLog.class); if (logData != null) { return logData.get(0); } else { return null; } }編輯->Upper Bound 應該是 24*60*60*1000 并且 lowerBound 應該是 0?
1 回答

拉風的咖菲貓
TA貢獻1995條經驗 獲得超2個贊
根據(jù)評論中的信息,我認為您可以按如下方式確定邊界值:
long millisPerDay = 24 * 60 * 60 * 1000;
long upperBound = System.currentTimeMillis();
long lowerBound = upperBound - millisPerDay;
注意:您應該檢查您的時間戳字段是否使用 Unix 時間戳(以秒為單位)或自 1970 年 1 月 1 日以來的毫秒:在第一種情況下,您的值應除以 1000。
我希望這可以幫助您正確設置查詢...
添加回答
舉報
0/150
提交
取消