ES数据-MySql处理Date类型的数据导入处理
用ES的小伙伴们,相信大家都遇到过Mapping处理Date类型的数据头疼问题吧。
不用头疼了,我来给你提供一种解决方案:
1、Maping定义为:
{ "mappings": { "carecustomerlog_type_all": { "properties": { "ID": { "type": "long" }, "APPLYRATE": { "type": "double" }, "PREAPPLYRATE": { "type": "double" }, "TYPE": { "type": "long" }, "CDATE": { "type": "long" }, "CARECUSTOMID": { "type": "long" }, "CAREACCOUNTID": { "type": "long" }, "watenum": { "type": "string", "index": "not_analyzed" }, "customerid": { "type": "string", "index": "not_analyzed" }, "orderid": { "type": "string", "index": "not_analyzed" }, "customername": { "type": "string", "index": "not_analyzed" }, "content": { "type": "string", "index": "not_analyzed" } } }, "careaccountin_type_all": { "properties": { "id": { "type": "long" }, "customerid": { "type": "string", "index": "not_analyzed" }, "groupid": { "type": "string", "index": "not_analyzed" }, "accountType": { "type": "string", "index": "not_analyzed" }, "rate": { "type": "double" }, "amount": { "type": "double" }, "fee": { "type": "double" }, "sellerid": { "type": "string", "index": "not_analyzed" }, "sellername": { "type": "string", "index": "not_analyzed" }, "state": { "type": "string", "index": "not_analyzed" }, "customername": { "type": "string", "index": "not_analyzed" }, "createdate": { "type": "string", "index": "not_analyzed" }, "groupname": { "type": "string", "index": "not_analyzed" }, "adviserid": { "type": "string", "index": "not_analyzed" }, "advisername": { "type": "string", "index": "not_analyzed" }, "ordergroupid": { "type": "string", "index": "not_analyzed" }, "ordergroupname": { "type": "string", "index": "not_analyzed" }, "comm": { "type": "string", "index": "not_analyzed" }, "watenum": { "type": "string", "index": "not_analyzed" }, "appkey": { "type": "string", "index": "not_analyzed" }, "paytime": { "type": "long" } } }, "carecustomerlog_type_funddetails": { "properties": { "ID": { "type": "long" }, "CDATE": { "type": "long" }, "orderid": { "type": "string", "index": "not_analyzed" }, "PREAPPLYRATE": { "type": "double" }, "APPLYRATE": { "type": "double" }, "content": { "type": "string", "index": "not_analyzed" }, "TYPE": { "type": "long" }, "CAREACCOUNTID": { "type": "long" }, "watenum": { "type": "string", "index": "not_analyzed" }, "customerid": { "type": "string", "index": "not_analyzed" }, "groupid": { "type": "string", "index": "not_analyzed" }, "accountType": { "type": "string", "index": "not_analyzed" }, "rate": { "type": "double" }, "amount": { "type": "double" }, "fee": { "type": "double" }, "sellerid": { "type": "string", "index": "not_analyzed" }, "sellername": { "type": "string", "index": "not_analyzed" }, "state": { "type": "string", "index": "not_analyzed" }, "customername": { "type": "string", "index": "not_analyzed" }, "createdate": { "type": "string", "index": "not_analyzed" }, "groupname": { "type": "string", "index": "not_analyzed" }, "adviserid": { "type": "string", "index": "not_analyzed" }, "advisername": { "type": "string", "index": "not_analyzed" }, "ordergroupid": { "type": "string", "index": "not_analyzed" }, "ordergroupname": { "type": "string", "index": "not_analyzed" }, "paytime": { "type": "long" } } } }}
在Mapping中把Date类型数据在es中定义成long类型。
在code中执行代码时,用MySql函数UNIX_TIMESTAMP(cai.paytime)获取日期的秒数据,插入到ES中
public static APIResult<String> save(String index, String type, String idName, JSONArray jsonArray) { BulkRequestBuilder bulkRequest = client.prepareBulk().setRefresh(true); for (Iterator localIterator = jsonArray.iterator(); localIterator.hasNext(); ) { Object object = localIterator.next(); JSONObject json = StringUtils.isJSONObject(object); String idValue = json.optString(idName); if (StringUtils.isBlank(idValue)) { idValue = idName; } if (StringUtils.isBlank(idName)) { IndexRequestBuilder lrb = client.prepareIndex(index, type).setSource(json.toString()); bulkRequest.add(lrb); } else { IndexRequestBuilder lrb = client.prepareIndex(index, type, idValue).setSource(json.toString()); bulkRequest.add(lrb); } } BulkResponse bulkResponse = null; try { bulkResponse = (BulkResponse) bulkRequest.execute().actionGet(); } catch (Exception e) { e.printStackTrace(); } if (bulkResponse.hasFailures()) { System.out.println(bulkResponse.getItems().toString()); return new APIResult(500, "保存ES失败!"); } bulkRequest = client.prepareBulk(); return new APIResult(200, "保存ES成功!"); }
,执行添加,提醒一下ES默认会设置分词,在添加之前,应该首先定义Mapping,在执行添加。
然后就可以执行select、update、delete操作了。
ES数据-MySql处理Date类型的数据导入处理
标签:
小编还为您整理了以下内容,可能对您也有帮助:
mysql中如何插入date日期型数值
解决方案一:
日期前面的符号换为逗号
日期可以用mysql的方法todate
解决方案二:
MySQL 插入数据 date 格式
mysql插入date类型的值
mysql插入date类型的值
解决方案三:
nsert into table (date) values ('to_date('2009-06-08 23:53:17','YYYY-DD-MM HH:MI:SS'),'
解决方案四:
数据库中日期字段设置datetime类型 然后就可以插入对应字符串
拓展资料
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
如何在MySQL中插入日期类型数据?
insert into 替换成你的表名 (name,date,value) values ('魂牵梦萦','2009-06-08 23:53:17','朝秦暮楚');
如果你是直接在Mysql中操作的话,建议用下navcait for mysql,界面操作完成后有一个查看代码,这样你既可以达到想要的功能,有能很快学到不同的sql语句。
MySQL :
是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权*(本词条"授权*"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。
系统特性:
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
如何在MySQL中插入日期类型数据?
insert into 替换成你的表名 (name,date,value) values ('魂牵梦萦','2009-06-08 23:53:17','朝秦暮楚');
如果你是直接在Mysql中操作的话,建议用下navcait for mysql,界面操作完成后有一个查看代码,这样你既可以达到想要的功能,有能很快学到不同的sql语句。
MySQL :
是一个关系型数据库,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权*(本词条"授权*"),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。由于其社区版的性能卓越,搭配 PHP ,Linux和 Apache 可组成良好的开发环境,经过多年的web技术发展,在业内被广泛使用的一种web服务器解决方案之一,称之为LAMP。
系统特性:
1.使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性
2.支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统
3.为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4.支持多线程,充分利用CPU资源
5.优化的SQL查询算法,有效地提高查询速度
6.既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7.提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
8.提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
9.提供用于管理、检查、优化数据库操作的管理工具。
10.支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
如何向MYSQL中插入date和date-time类型的数据。
如果是获取当前时间的话
使用mysql自带的函数
curdate()返回日期型数据 'YYYY-MM-DD'
now()返回日期时间型数据 'YYYY-MM-DD HH:MM:SS'
$sql="insert into xxx_table (xxx_date , xxx_datetime) values( curdate(),now() )";
MySql要怎么插入DateTime型的数据?
mySQL插入Date Time 型数据就是要获取DateTime型的数据。
获取Date Time型数据的编程例子:
mysql> select now();
| now() |
| 2008-08-08 22:20:46 |
除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)
这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。
扩展资料:
MySql的时间日期函数(Date Time)的种类:
1、函数ADDDATE(date,INTERVAL expr type ) ADDDATE(expr,days )
函数使用说明: 当被第二个参数的 INTERVAL 格式激活后, ADDDATE() 就是 DATE_ADD() 的同义词。相关函数 SUBDATE() 则是 DATE_SUB() 的同义词。对于 INTERVAL 参数上的信息 ,请参见关于 DATE_ADD() 的论述。
2、函数 ADDTIME(expr,expr2 )
函数使用说明: ADDTIME() 将 expr2 添加至 expr 然后返回结果。 expr 是一个时间或时间日期表达式,而 expr2 是一个时间表达式。
3、函数 CONVERT_TZ(dt,from_tz,to_tz )
函数使用说明: CONVERT_TZ() 将时间日期值 dt 从 from_tz 给出的时区转到 to_tz 给出的时区,然后返回结果值。关于可能指定的时区的详细论述,若自变量无效,则这个函数会返回 NULL
参考资料:百度百科 MySQL函数