gpt4 book ai didi

java - 使用JAVA检查日期是否在MongoDB列中的两个日期之间

转载 作者:可可西里 更新时间:2023-11-01 10:43:09 24 4
gpt4 key购买 nike

我正在通过将 java 与 MongoDB 结合使用来处理 Web 服务,因为我正在尝试检查日期时间“2015-04-16 16:32:49”是否位于字段 start_time 中存在的日期时间之间和表中的 end_time。在 mysql 中,我尝试了以下查询

select * from tablename where Employee_id =101 and '2015-04-16 16:32:49' between start_time and end_time;

我正在尝试通过使用以下代码在 MongoDB 中使用 java 复制相同内容

BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("employeeID", "101");
String date = "2015-04-17 11:02:49";
whereQuery.put(date, new BasicDBObject("$gt", "start_time ")
.append("$lt", "end_time "));
DBCursor cursor = col.find(whereQuery);

但是代码不工作,它没有将指定的日期与表中的两列进行比较,正确的语法是什么

如果我尝试这段代码

whereQuery.put(someOtherField, new BasicDBObject("$gt", "2015-04-17 11:02:49")
.append("$lt", "2015-04-19 11:02:49"));

它正在工作我需要语法来比较日期字符串和整个表中的两个字段

最佳答案

您的查询大致转化为:

select * from tablename where Employee_id =101 and '2015-04-16 16:32:49' > "start_time" and '2015-04-16 16:32:49' < "end_time";

您正在将字符串 "start_time""end_time"'2015-04-16 16:32:49' 进行比较。

正确的查询应该是:-

BasicDBObject whereQuery = new BasicDBObject();
whereQuery.put("employeeID", "101");
String date_string = "2015-04-17 11:02:49";
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
Date date = format.parse(date_string);
whereQuery.put("start_time", new BasicDBObject("$lt", date));
whereQuery.put("end_time", new BasicDBObject("$gt", date));
DBCursor cursor = col.find(whereQuery);

您可以使用常规的 JAVA 日期对象。

关于java - 使用JAVA检查日期是否在MongoDB列中的两个日期之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29695034/

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