gpt4 book ai didi

java - MongoDB Spring 的日上限和下限

转载 作者:行者123 更新时间:2023-12-02 10:16:22 25 4
gpt4 key购买 nike

我有一个数据库,并且我还为用户在数据库上执行的每次更新保存日志。我想检查用户是否在 24 小时内更新数据,然后更新日志,否则如果数据更新超过一天,则不更新当天的日志,而是插入新日志。为此,我需要设置插入数据的时间的上限和下限。

我写了一个函数,用于检查数据是否在 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;
}
}

编辑 ->

上限应为 24*60*60*1000,下限应为 0?

最佳答案

根据评论中的信息,我认为您可以按如下方式确定边界值:

long millisPerDay = 24 * 60 * 60 * 1000;
long upperBound = System.currentTimeMillis();
long lowerBound = upperBound - millisPerDay;

警告:您应该检查时间戳字段是否使用 Unix 时间戳(以秒为单位)或自 1970 年 1 月 1 日起的毫秒:在第一种情况下,您的值应除以 1000。

我希望这可以帮助您正确设置查询...

关于java - MongoDB Spring 的日上限和下限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54648958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com