ElasticSearch7 数据类型之日期类型

2023-11-03

日期类型(Date datatype)

 Elasticsearch7 日期表达成类型:

  • 日期格式化的字符串,比如: “2015-01-01” 或者 “2015/01/01 12:10:30”;
  • 毫秒级别的 long 类型
  • 秒级别的 integer 类型

MySQL8 Timestamp与String 日期格式类型转换

    //  2.1 String ->Timestamp
    // 使用Timestamp的valueOf()方法
    @org.junit.Test
    public void testStringToTimestamp() {
        // 注:String的类型必须形如: yyyy-mm-dd hh:mm:ss[.f...] 这样的格式,中括号表示可选,否则报错!!!
        // 如果String为其他格式,可考虑重新解析下字符串,再重组~~
        String tsStr = "2011-05-09 11:49:45";
        Timestamp ts = Timestamp.valueOf(tsStr);  // 2011-05-09 11:49:45.0
        System.out.println(ts);
    }
 
    //  2.2 Timestamp -> String
    @org.junit.Test
    public void testTimestampToString() {
        Timestamp ts = new Timestamp(System.currentTimeMillis());
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
        //方法一:优势在于可以灵活的设置字符串的形式。
        String tsStr = sdf.format(ts);
        System.out.println(tsStr);  // 2017-01-15 21:17:04
        //方法二
        tsStr = ts.toString();
        System.out.println(tsStr); // 2017-01-15 21:17:04.7
    }

ElasticSearch7 实际开发中应用案例:

1、判断数据库取值对象类型是否为:java.sql.Timestamp

2、条件一成立:将java.sql.Timestamp 转换为String 日期格式,进行elasticsearch 7 数据填充

public void batchInsert(String sql, Connection conn, Integer pageNo, Integer pageSize, BulkProcessor bulkProcessor){
  		ResultSet rs = null;
  		PreparedStatement ps = null;
  		try{
  			ps = conn.prepareStatement(String.format(sql, pageNo, pageSize), ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
  			ps.setFetchSize(Integer.MIN_VALUE);
  			rs = ps.executeQuery();
  			
  			ResultSetMetaData colData = rs.getMetaData();
  			ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
  			HashMap<String, Object> map = null;
  			
  			String c = null;
  			Object v = null;
  			while (rs.next()) {
  				map = new HashMap<String, Object>(100);
  				for (int i = 1; i <= colData.getColumnCount(); i++) {
  					//c = colData.getColumnName(i);
  					c = colData.getColumnLabel(i);
  					v = rs.getObject(c);
  					if(v instanceof java.sql.Timestamp){
  						// 处理java.sql.Timestamp 与es 日期个数转换
  						if(v != null){
  							 DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  							 String str = dateFormat.format(v);
  							 map.put(c, str);
  						}
  					} else {
  						map.put(c, v);
  					}
  					
  				}
  				dataList.add(map);
  				
  			}

  			for (HashMap<String, Object> hashMap2 : dataList) {
  				bulkProcessor.add(new IndexRequest("fileinfo").source(hashMap2));
  			}

  			logger.info("-------------------------- Finally insert number total");
              // 将数据刷新到es, 注意这一步执行后并不会立即生效,取决于bulkProcessor设置的刷新时间
  			bulkProcessor.flush();
  		}catch(Exception e){
  			e.printStackTrace();
  			logger.error(e.getMessage());
  		}finally {
  			try {
  				rs.close();
  				ps.close();
  			} catch (Exception e) {
  				e.printStackTrace();
  				logger.error(e.getMessage());
  			}
  		}
  	}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch7 数据类型之日期类型 的相关文章

  • DC-2靶机渗透

    首先获取目标主机ip netdiscover i eth0 r 192 168 88 1 24 对端口进行扫描 只开放了web服务 于是访问web 这里配置本地dns解析 将目标ip地址添加进hosts 成功访问 发现是wordpress
  • Springboot项目打包war配置详解

    Springboot项目打包war配置详解 1 排除内置tomcat依赖 2 添加servlet依赖 3 修改打包方式 4 修改主启动类 5 完整pom xml 6 效果图 1 排除内置tomcat依赖
  • C++多态

    文章目录 多态 重写 虚函数 C 11 override 和 final 重载 重写 重定义 抽象类 接口继承和实现继承 多态的原理 虚函数表 单继承和多继承的虚函数表 总结 多态 多态 可以理解为一种事务有多种形态 不同的对象可以通过多态
  • 牛客错题集(2)

    这里写目录标题 专业知识 计算机组成原理 数据结构 C C 操作系统 计算机网络 数据库 软件测试 软件工程 知识盲区 运维 JAVA 编程基础 Linux 网络基础 编译和体系结构 前端 专业知识 计算机组成原理 Q 由于CPU内部的操作

随机推荐

  • cout执行顺序从右到左!!!

    cout在执行的时候为从右向左先执行 输出时为按照原来的顺序在从左向右输出
  • Animate cc怎么导出HTML,使用 Animate CC 导出图形和视频

    导出应用程序首选参数 您可以在专家和初学者首选参数之间切换 您还可将自己的应用程序设置 包括工具栏设置 键盘快捷键和其他应用程序设置 导出为单个文件 只需进行简单的文件导出和导入操作 即可跨设备应用您的应用程序首选参数 导出首选参数 导出全
  • ipfs-hdfs分布式文件系统

    HDFS hadoop项目的核心子项目 基于流数据模式访问和处理超大文件的需求而开发的 数据的分布式存储和处理 namenode 和 datanode 的内置服务器可帮助用户轻松检查群集的状态 namenode 管理维护着文件系统树以及整个
  • webgl 第三人称相机

    发现自己越来越懒了 基础的我不写了 有很多博客都写了 连w3c都有 瞬间没有心思写下去了 并且也很忙 每天都在研究 别骂我 真心没心思 我会考虑写一些难度大点的 这样有动力点 代码如下 看下面需要注意的是向量的计算
  • 计算机桌面背景显示方式有几种,如何让计算机自动更改桌面背景

    您可能对以下主题感兴趣 如何使计算机自动更改桌面背景 核心提示 本教程将向您展示如何使计算机自动更改桌面背景 Windows 7支持多种桌面背景切换功能 以使我们的桌面更加美观 但对于喜欢按文件夹保存图片的用户 如果在设置桌面背景时指定了包
  • 测试开发必备技能与成长路径

    可以通过学习不断往上攻关 比如搭建测试平台 掌握代码分析能力 进行持续交付 代码质量监控等
  • Vue Router 的query和params的区别?

    区别一 1 query相当于get请求 页面跳转的时候可以在地址栏看到请求参数 2 params相当于post请求 参数不会在地址栏中显示 所以用params传值相对安全 简记 params参数在地址栏中不会显示 query会显示 区别二
  • Ubuntu18.04.2设置系统时间问题

    Ubuntu18 04 2设置系统时区问题 出现情况 系统时区设置正确 但是系统时间比实际快8小时 原因为系统硬件时间是UTC格式 需要将其改为CST格式 使用以下命令 timedatectl set local rtc adjust sy
  • 功耗测评

    STM32F103C8T6 MCU越来越广泛的应用在生产生活的各个领域 外接丰富的传感器 功能模块 通信模块 显示存储等可以形成各种可样的产品项目应用 对于功耗要求比较高的产品 一般会选择STM32L系列的MCU 但是从功耗的评测角度 逻辑
  • 内容产品项目作品

    一 项目背景介绍 如果让大家来做一个没接触过的产品 思路 先了解产品所在的行业 多看看第三方的行业研究的文章 了解产品的主要竞品 这样做产品设计的时候不会乱搞 常见的内容产品形态 图文 音视频 直播等 二 内容产品生态及产品架构 产品架构端
  • < ElementUi组件库: el-progress 进度条Bug及样式调整 >

    ElementUi组件库 el progress 进度条Bug及样式调整 前言 一 实现原理 gt 修改 el progress 进度条样式 及 渐变进度条样式 二 案例代码 前言效果图案例 gt HTML代码 gt CSS代码 三 效果演
  • Unity使用vscode无法跳转到引用等一些问题

    软件 unity2019 vscode 前提 一直在用visiostudio做Unity开发 但vscode确实有很多优点 今天在一个全新电脑下搭建环境 竟遇到了许多问题 vscode无法跳转到引用 F12不起作用 无法引用using Un
  • V字钩爪。

    题目链接 题解 分块 就是有一些点之间是永远没有交集的 因为每一个点只与前面第k个元素以及后面那k个元素有关 所以我们应该把那些出现矛盾的点放到一起 然后进行讨论 下面是AC代码 include
  • java包的介绍

    包 包就是文件夹 用来管理各种不同功能的 java 类 方便后续管理 包名的规则 公司域名反写 包的作用 需要全部英文小写 见名知意 导包的规则 使用同一个包中的类时 不需要导包 使用 java Lang 包中的类时 不需要导包 其他情况都
  • python中怎么样统计一张图像中白色和黑色像素点个数(二值图)

    前言 有时候需要计算一张图片里的里黑白像素的个数来计算某些指标 所以这里就教大家怎么计算 代码实现 import numpy as np import cv2 二值化图像直接 print len im im 255 print len im
  • centos6、centos7、ubntu去除ip link 中bond

    说明 在对服务器重新配置网络时候 往往需要提前清楚网络和网卡相关信息 这里坐下说明和记录 centos6去除网络配置 网络配置路径 etc sysconfig network scripts 去除网络配置前先做备份 mkdir opt ne
  • SpringMVC实现文件的上传和下载

    SpringMVC文件的上传和下载 一 SpringMVC文件上传 1 什么是文件上传 文件上传 指的就是将用户本地计算机中文件上传到服务器上的过程称之为文件上传 2 文件上传编程步骤 1 Client选择文件 上传页面 1 method
  • TypeScript的基础类型

    1 boolean类型 boolean表示布尔值类型 即true和false 例 let isDone boolean false 2 number类型 number表示数字类型 包括整数和浮点数 例 let decimal number
  • 如何开发和部署微信小程序

    今天开始 用ChatGPT创作技术内容了 要开发和部署微信小程序 您需要遵循以下步骤 1 注册微信小程序账号 在微信公众平台注册小程序账号 通过审核后即可开始开发 2 下载开发工具 微信小程序开发工具是一款免费的IDE 可在Windows
  • ElasticSearch7 数据类型之日期类型

    日期类型 Date datatype Elasticsearch7 日期表达成类型 日期格式化的字符串 比如 2015 01 01 或者 2015 01 01 12 10 30 毫秒级别的 long 类型 秒级别的 integer 类型 M