从json中获取嵌套对象值(Oracle中的json_value和MySQL中的JSON_EXTRACT) 以及Oracle和MySQL处理日期语法的不同
- 1. 从json中获取嵌套对象值
- 1.1 Oracle 的 json_value
- 1.2 MySQL 的 JSON_EXTRACT
- 2. 日期问题
- 2.1 MySQL
- 2.1.1 获取指定日期
- 2.1.1.1 DATE_SUB() 函数
- 2.1.1.2 DATE_ADD() 函数
- 2.1.2 日期格式的转换->DATE_FORMAT()
- 2.1.3 字符串转换日期类型->STR_TO_DATE()
- 2.2 Oracle 日期问题
1. 从json中获取嵌套对象值
1.1 Oracle 的 json_value
- 语法:
json_value(t.person_info, '$."person_name"')
- 如下:
select json_value(t.person_info, '$."person_name"'), json_value(t.person_info, '$.person_sex'), t.person_info from person_test t;
1.2 MySQL 的 JSON_EXTRACT
- 语法
JSON_EXTRACT(t.person_info, '$."person_name"')
- sql
select t.person_info, JSON_EXTRACT(t.person_info, '$."person_name"'), JSON_EXTRACT(t.person_info, '$.person_sex') from person_test t;
- 效果
2. 日期问题
2.1 MySQL
2.1.1 获取指定日期
2.1.1.1 DATE_SUB() 函数
- 语法
DATE_SUB(date,INTERVAL expr type)
- 说明
- 其中date是指定的日期,INTERVAL为关键词,expr是具体的时间间隔,type是时间单位
- type可取值:
year、month、week、day、hour、minute、second 等
- 例子
- week 的
select DATE_SUB(SYSDATE(),INTERVAL +1 WEEK) , SYSDATE(), DATE_SUB(SYSDATE(),INTERVAL -1 WEEK) from dual;
- day 的
- week 的
2.1.1.2 DATE_ADD() 函数
- DATE_ADD() 与 DATE_SUB() 反着推时间就行了,不说了,直接给个例子
2.1.2 日期格式的转换->DATE_FORMAT()
-
语法及例子
语法:DATE_FORMAT(date,format)
SELECT DATE_FORMAT(NOW(),'%Y年%m月%d日 %H时%i分%s秒') from dual;
-
注意格式 %y 与%Y 显示的位数不同
-
常用 format 格式说明:
format 说明 %Y 与 %y %Y–>4位 (%y–>2位) %H 与 %h %H–>24小时 (%h–>12小时) 更多的格式说明,如果用到自己可以网上搜搜
2.1.3 字符串转换日期类型->STR_TO_DATE()
- sql及效果,如下:
SELECT STR_TO_DATE('2022年12月01日 18时38分59秒','%Y年%m月%d日 %H时%i分%s秒'); from dual;
2.2 Oracle 日期问题
-
关于Oracle的,之前有写过,也有日期用法,这个也比较简单,这里就不说了,也可以看下面的文章:
Oracle 常用简单sql操作(insert into、merge into、start with connect by prior以及 regexp_substr等各种函数用法详解).