在gemfire上,我有一个ABC区域,在这个区域内有一个long类型的列/字段。
在此字段中,我将值设置为System.nanoTime()
。
我想从该地区提取所有记录,该记录比24小时早。
我该怎么办?
目前,我正在尝试按以下方式进行查询,但无法正常工作。
select regionTimestamp from /ABCRegion where (((((regionTimestamp-currentTimeStamp)/ 1000000000))/3600)>24)
任何帮助建议都必须得到赞赏。
答案 0 :(得分:2)
注意:每当计算机重新启动时,都会重置System.nanoTime(),因此它不是存储在数据库中的好选择。这也意味着时间是每台机器的本地时间。
LocalDateTime.now()
是一个纳秒分辨率的壁钟,它不会在重新启动时重置,并且更有可能在所有计算机上工作。
无论如何,您都可以重新排列并计算
long now = ...
long aDayAgo = now - 86_400_000_000_000L; // 24 hours.
search for ... where regionTimestamp > aDayAgo