广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Mongodb如何将时间戳转换为年月日日期
  • 215
分享到

Mongodb如何将时间戳转换为年月日日期

Mongodb时间戳时间戳转换日期时间戳转换年月日日期 2022-11-13 18:11:18 215人浏览 泡泡鱼
摘要

目录mongoDB将时间戳转换为年月日日期MonGoDB中的日期查询的坑Mongodb将时间戳转换为年月日日期 使用dateToString 方法进行转换 并且通过fORMat指定转

Mongodb将时间戳转换为年月日日期

使用dateToString 方法进行转换 并且通过fORMat指定转换日期格式

        Integer userId=aaa;
        GroupOperation groupOperation = Aggregation.group("day").sum("money").as("todayIncome").count().as("todayPayCount");
        Aggregation aggregation = Aggregation.newAggregation(
                Aggregation.match(Criteria.where("userId").is(userId)),
                project("userId","money").andExpression("{$dateToString: {date: { $add: {'$createTime', [0]} }, format: '%Y%m%d'}}", new Date(28800000)).as("day"),
                groupOperation,
                sort(Sort.Direction.ASC, "_id")
        );

注意:

1.必须使用 $dateToString: {date: { $add: 通过求和进行date数据转换 如果去掉后面的会报解析错误

org.springframework.data.mongodb.UncategorizedMongoDbException: Command failed with error 16006 (Location16006): 'can't convert from BSON type long to Date' on server localhost:50000. The full response is {"ok": 0.0, "errmsg": "can't convert from BSON type long to Date", "code": 16006, "codeName": "Location16006"}; nested exception is com.mongodb.MongoCommandException: Command failed with error 16006 (Location16006): 'can't convert from BSON type long to Date' on server localhost:50000. The full response is {"ok": 0.0, "errmsg": "can't convert from BSON type long to Date", "code": 16006, "codeName": "Location16006"}

2.必须增加 new Date(28800000) 的时间 原因是增加了8个时区的偏移量

MongoDB中的日期查询的坑

在熟悉monggoDB的时候遇到了时间查询的问题代码如下:

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
 
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
 

public class MongDBTest {
	public static void main(String[] args) throws Exception {
		List<ServerAddress> list = new ArrayList<ServerAddress>();
//		连接数据库   ip 端口
		list.add(new ServerAddress("10.39.XXX.XXX", 27010));
		MongoClient mongoClient = new MongoClient(list);
		//数据库名称
	    DB psdoc = mongoClient.getDB("qa_db_center");
	    //表明
	    DBCollection collection=psdoc.getCollection("base_user_info");
	    
	    BasicDBObject queryObject = null; 
	    
	    // 时间查询    数据库看到的时间不是真实时间  加8小时后才是正确的时间
	    DBObject dbObject = new BasicDBObject();
	    String startDate = "2018-03-29 15:59:06";
	    String endDate = "2018-03-29 16:30:46";
	    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
	    dbObject.put("$gte", sdf.parse(startDate));
	    dbObject.put("$lte",  sdf.parse(endDate));
	    queryObject = new BasicDBObject();
	    queryObject.put("create_time",dbObject);
	    DBCursor find = collection.find(queryObject);
	     
	    while (find.hasNext()) {
	    	 DBObject next = find.next();
	    	 Object real_name = next.get("real_name");
	    	 Object mobile = next.get("mobile");
	    	 Object create_time = next.get("create_time"); 
	    	 String str = sdf.format(create_time);
	    	 System.out.println(real_name +"====="+mobile +"====="+str);
		}
	     System.out.println("结束");
	    
	}
}

请求页面 默认页 https://blog.csdn.net/qq_27292113/article/details/91876121 【标题】:MongoDB中的日期查询的坑_天马行空-的博客-CSDN博客_mongodb query 日期 【内容】:

在熟悉monggoDB的时候遇到了时间查询的问题代码如下:

上面的代码中查询时间 按Mysql 的流程应该查询到 2018-03-29 15:59:06 到2018-03-29 16:30:46 这个区间的数据,但是mongoDB不同,因为mongo中的date类型以UTC(Coordinated Universal Time)存储,就等于GMT(格林尼治标准时)时间。而系统时间使用的是GMT+0800时间,两者正好相差8个小时。也就是用java 代码插入的时间类型的值都会被减8小时。这个坑挺大的不注意很容易出事。

展示一下对比数据便于理解:

上面的圈是查询的条件对应数据库中的数据是2018-03-29T08:30:36.310Z 如下图,但是在java中你写2018-03-29 08:30:36这个时间肯定查不到数据

对比得出数据库中看到的时间和实际时间差8小时,但是查询出来的结果时间还是会被转换回来(不以时间为条件查询的话基本没什么问题)。

记录一下mongoDB中查询区间时间的执行语句:

db.getCollection('base_user_info').find({"create_time":{"$gte":ISODate("2018-03-29 07:59:06"),"$lte":ISODate("2018-03-29 08:30:46")}});

base_user_info :表名  create_time:字段名

比较符号对应列表

  • $gt -------- greater than  >
  • $gte --------- gt equal  >=
  • $lt -------- less than  <
  • $lte --------- lt equal  <=
  • $ne ----------- not equal  !=
  • $eq  --------  equal  =

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Mongodb如何将时间戳转换为年月日日期

本文链接: https://www.lsjlt.com/news/169530.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Mongodb 如何将时间戳转换为年月日日期
    目录MongoDB将时间戳转换为年月日日期MongoDB中的日期查询的坑Mongodb将时间戳转换为年月日日期 使用dateToString 方法进行转换 并且通过format指定转换日期格式 Integer u...
    99+
    2022-10-17
  • Mongodb如何将时间戳转换为年月日日期
    目录Mongodb将时间戳转换为年月日日期MongoDB中的日期查询的坑Mongodb将时间戳转换为年月日日期 使用dateToString 方法进行转换 并且通过format指定转...
    99+
    2022-11-13
    Mongodb时间戳 时间戳转换日期 时间戳转换年月日日期
  • php中如何将时间戳转换为年月日
    小编给大家分享一下php中如何将时间戳转换为年月日,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php把时间戳转换为年月日的方法是,使用date()函数来格式化时...
    99+
    2023-06-15
  • php中如何将年月日转换为时间戳
    这篇“php中如何将年月日转换为时间戳”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“php中如何将年月日转换为时间戳”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢理解,接下来就让...
    99+
    2023-06-06
  • php时间戳如何转换日期带年月日
    今天小编给大家分享一下php时间戳如何转换日期带年月日的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php时间戳转换日期带年...
    99+
    2023-07-05
  • php如何将“年月日”转为时间戳
    今天小编给大家分享一下php如何将“年月日”转为时间戳的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。时间戳的概念在计算机科学...
    99+
    2023-07-05
  • php如何将年月日转为时间戳
    这篇文章主要介绍“php如何将年月日转为时间戳”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php如何将年月日转为时间戳”文章能帮助大家解决问题。一、strtotime()函数在PHP中,有一个st...
    99+
    2023-07-05
  • php怎么将年月日转为时间戳
    PHP时间戳是用于表示一个日期和时间的数字值。通常情况下,我们使用日期和时间格式的字符串来表示时间,例如“YYYY-MM-DD HH:MM:SS”,但在处理时间计算和日期比较时,使用时间戳比使用日期字符串方便得多。因此,本文将介绍如何在PH...
    99+
    2023-05-14
    php php时间戳
  • php怎么将“年月日”转为时间戳
    随着互联网技术的不断发展,PHP已经成为一种非常流行的Web开发语言。在PHP开发中,时间戳是一个非常重要的数据类型。在一些需要计算日期时间的应用中,使用时间戳可以大大简化代码的编写和维护,并提高代码的性能。在本文中,我们将详细介绍如何将年...
    99+
    2023-05-14
    php php时间戳
  • php如何将时间戳转换为日期
    这篇文章主要介绍了php如何将时间戳转换为日期,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。在php中,可以使用date()函数来将时间戳转换为日期,语法格式“date(fo...
    99+
    2023-06-14
  • php如何将时间戳转为“年月日”格式
    这篇“php如何将时间戳转为“年月日”格式”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“php如何将时间戳转为“年月日”格式...
    99+
    2023-07-05
  • php怎么将时间戳转为“年月日”格式
    在PHP中,我们经常需要计算和处理时间。时间戳是一个很有用的方法,可以将一个日期和时间转换为自1970年1月1日起的秒数。有时候,我们需要将时间戳转换为可读性更好的格式,比如年月日。本文将介绍如何在PHP中将时间戳转换为年月日格式。什么是时...
    99+
    2023-05-14
    php php时间戳
  • 如何使用PHP将日期转换为时间戳
    本篇内容介绍了“如何使用PHP将日期转换为时间戳”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用strtotime函数PHP中的strto...
    99+
    2023-07-05
  • js和php如何将时间戳转换为日期
    这篇文章主要介绍了js和php如何将时间戳转换为日期的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇js和php如何将时间戳转换为日期文章都会有所收获,下面我们一起来看看吧。JavaScript时间戳转换日期在J...
    99+
    2023-07-05
  • php如何将时间戳转为日期
    本篇内容主要讲解“php如何将时间戳转为日期”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php如何将时间戳转为日期”吧!PHP提供了两个函数可以用来处理时间戳和日期。这些函数分别是 date(...
    99+
    2023-07-05
  • php如何将日期转为时间戳
    小编给大家分享一下php如何将日期转为时间戳,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php有什么用php是一个嵌套的缩写名称,是英文超级文本预处理语言,它的...
    99+
    2023-06-15
  • MongoDB中怎么将时间戳转为日期格式
    这篇文章给大家介绍MongoDB中怎么将时间戳转为日期格式,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MongoDB模糊查询方法示例:模糊查询:tname包含某个关键字测试'...
    99+
    2022-10-18
  • php如何将日期转换成时间戳
    PHP是一种流行的编程语言,用于Web应用程序的开发。在PHP中,日期和时间是非常常见的数据类型,在处理日期和时间时,时间戳是一个非常有用的工具。在本文中,我们将介绍如何将日期转换为时间戳。日期是指一天的名称、月份和年份。而时间戳则表示自1...
    99+
    2023-05-14
    php时间戳 php
  • react如何将时间戳转换成日期
    本文小编为大家详细介绍“react如何将时间戳转换成日期”,内容详细,步骤清晰,细节处理妥当,希望这篇“react如何将时间戳转换成日期”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。react将时间戳转换成日期的...
    99+
    2023-07-05
  • php如何将年月日时分秒转成时间戳
    本文小编为大家详细介绍“php如何将年月日时分秒转成时间戳”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何将年月日时分秒转成时间戳”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。PHP是一种广泛使用的脚本...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作