jongo_对表中时间字段进行范围查询

     DB db = DbManager.getInstance().getDataDb();
        Jongo jongo = new Jongo(db);
        MongoCollection sysLogs = jongo.getCollection("sys_logs");

        Map<String, Object> map = new HashMap<>();

        Criteria criteria = new Criteria();
        try {
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
             Date start = simpleDateFormat.parse(startTime);
             Date end = simpleDateFormat.parse(endTime);
             criteria.and("handleTime").gte(10l).lte(10000000000000l);

         } catch (ParseException e) {
             e.printStackTrace();
         }

if (Objects.nonNull(username)) {
           // map.put("username", username);
            criteria.and("username").equals(username);
        }

        String query = new org.springframework.data.mongodb.core.query.Query(criteria).getQueryObject().toJson();

        MongoCursor<Map> as = sysLogs.find(query).skip((pagination.getCurrent() - 1) * pagination.getPageSize())
                .limit(pagination.getPageSize()).as(Map.class);

原文地址:https://www.cnblogs.com/notchangeworld/p/12407512.html

时间: 2024-10-28 11:22:14

jongo_对表中时间字段进行范围查询的相关文章

python sqlite中通过字段名获取查询结果

在连sqlite数据库时,用fetchall()查询结果,是用row[0],row[1]这样的方式来打印每列的结果 但是我想用row[“字段名”]方式查询怎么办? import sqlite3 con = sqlite3.connect("mydb") con.row_factory = sqlite3.Row cur = con.cursor() cur.execute("select name_last, age from people") for row in

MySQL基于时间字段进行分区的方案总结

MySQL支持的分区类型一共有四种:RANGE,LIST,HASH,KEY.其中,RANGE又可分为原生RANGE和RANGE COLUMNS,LIST分为原生LIST和LIST COLUMNS,HASH分为原生HASH和LINEAR HASH,KEY包含原生KEY和LINEAR HASH.关于这些分区之间的差别,改日另写文章进行阐述. 最近,碰到一个需求,要对表的时间字段(类型:datetime)基于天进行分区.于是遍历MySQL官方文档分区章节,总结如下: 实现方式 主要是以下几种: 1.

数据库时间字段条件操作善用TO_DAYS函数等

to_days函数:返回从0000年(公元1年)至当前日期的总天数.注意如下举例中的几个字段名一般为时间戳记录.1.利用to_days函数查询今天的数据: select * from 表名 where to_days(时间字段名) = to_days(now()); 2.利用to_days函数查询昨天数据 SELECT * FROM 表名 WHERE TO_DAYS( NOW( ) ) – TO_DAYS( 时间字段名) <= 1 其他:1.查询7天数据 SELECT * FROM 表名 whe

数据库时间字段的求和运算

//以下测试代码主要是针对数据库中时间字段的简单求和实现,采用了"遍历","String与int的相互转换","截取字符串"等多个知识点.public void queryBy(){ List<Course> courses = courseDao.queryBy(3); System.out.println("queryBy="+courses); int minSum =0; int sSum=0; for(i

如何解决前端传来的时间格式与mysql表中时间格式不匹配的查询问题

前端传过来的时间格式为“2016-07-11 11:13:10”,而数据表中对应字段`add_time`的格式为“2016-7-11”,此时sql不能直接用 "where `add_time` = '2016-07-11 11:13:10'.可以通过下面方式实现: 1. 在用于sql查询之前用PHP的strtotime()和date()对数据进行格式化,成为最终需要的格式,再将数据用于查询: 1 $t = '2015-03-02 12:04:12'; 2 $t = date('Y-m-d', s

MySQL查询-分组取组中某字段最大(小)值所有记录

最近做东西的时候,用到一个数据库的查询.将记录按某个字段分组,取每个分组中某个字段的最大值的所有记录.举栗子来说. 已知分数表“score”,包含字段“id", "name", "course", "score".包含记录如下图所示. 现在,要求查询每个人分数最高的课程的那一条记录.即获得如下结果: 大概思路是,先通过order by将记录按score字段排序,创建临时表.然后按name字段分组查询临时表,即可获得所需查询结果.完整的s

解决SQL Server 2005数据库中datetime时间字段在前端显示时分秒的问题

SQL Server 2005中时间类型datetime的格式是"年月日时分秒",直接读出来该字段,为了不让它在前端显示"时分秒"若是显示在dataGridView中,可以修改控件的某一列格式,如: dataGridView1.Columns[10].DefaultCellStyle.Format = "yyyy-MM-dd"; 但是要在listview控件中的话,就有点困难了,貌似没有类似的属性,这样的话,考虑从数据源入手. 1.获取当前年月日

每天进步一点点之SQL 获取表中某个时间字段离当前时间最近的几条

实际中用到的SQL: select * from (select top 3 Id, case when startSignup>GETDATE() then '敬请期待' when (startSignup<GETDATE() and  endsignUp>=getdate()) then '正在报名'  when (StartDate<GETDATE() and EndDate>=GETDATE())or (StartDate<GETDATE() and EndDa

数据库小记:根据指定名称查询数据库表名及根据指定名称查询数据库所有表中的字段名称(支持mysql/postgre)

意:本篇文章仅适用于mysql和postgre这两种数据库 1.查询数据库中所有表名及对应表的详细信息 select * from INFORMATION_SCHEMA.tables 2.根据指定名称查询表名(也可模糊查询,可查询表的详细信息) select *  from INFORMATION_SCHEMA.tables where table_name = 'eguid'; select * from INFORMATION_SCHEMA.tables where table_name l