当前位置:首页 > 生活百科

sql时间范围查询(数据库sql语句大全实例)

栏目:生活百科日期:2025-05-14浏览:0

SQL&–查询JSON、时间、字符串的高级用法

本文章总结SQL的JSON、时间格式、字符串判断转换的使用。核心点还是在于Json字段的提取(1.5)、时间的比较(2.2,2.3)以及字符串的查询(3.1),其他都算是优化和补充点。


@

目录

1.SQL&–JSON使用

1.1.JSON_ARRAY&–转成数组

1.2.JSON_OBJECT&–转成json对象

1.2.JSON_QUOTE&–转成json

1.3.JSON_MERGE&–合并json

1.4.JSON_VALID&–判断是否为json

1.5.JSON_EXTRACT&–提取json(重点*)

1.6.JSON完整内容

2.SQL&–时间计算比较

2.1.时间&–添加、减少

2.2时间格式转换

2.3统计本年/本月/本周/本日(重点*)

2.4 时间格式总结

3.SQL&–字符串

3.1.Concat&–模糊查询

3.2.locate&–查找字符串

3.3.If、Case、Round&–优化显示与字段计算

1.SQL&–JSON使用

解释一下为什么SQL要用到JSON存储和查询,因为很多时候前端展示内容或者后端存储无用字段过多,所以没必要后台新建太多字段。并且为了方便项目上线后快速排查问题反馈解决办法给用户,故而引入了JSON来存储和查询,实际开发中库表字段设计成JSON的情况也比较多。

? 先给出基本建库查询操作

# SQL--建库CREATE TABLE t_base_info (    id BIGINT NOT NULL PRIMARY KEY auto_increment,    content json);# SQL--入库INSERT INTO t_base_info (content)VALUES(    '{    "author": "huyuqiao-A",    "blog": "https://www.cnblogs.com/meditation5201314/",    "content": &[        {"name": "Empirefree-01",        "age": 18        },        {"name": "Empirefree-02",        "age": 19        },        {"name": "Empirefree-03",        "age": 19        }    ]}');

1.1.JSON_ARRAY&–转成数组

# SQL--查询# json--对象转数组select json_array(content) from t_base_info

1.2.JSON_OBJECT&–转成json对象

#json--对象转json格式--自定义select json_object('name', 'huyuqiao', 'age', '18',  'profession','Java开发工程师')

1.2.JSON_QUOTE&–转成json

#json--引用字符串作为json值select json_quote('"huyuqiao"')

1.3.JSON_MERGE&–合并json

#json--合并字符串select json_merge('{"blog": "www.baidu.com"}', '{"name":"huyuqiao"}')

1.4.JSON_VALID&–判断是否为json

#json--判断json格式是否有效--0 表示无效,1 表示有效,NUll 表示参数为nullselect json_valid("huyuqiao"), json_valid('"huyuqiao"'), json_valid(null)

1.5.JSON_EXTRACT&–提取json(重点*)

#json--查询json内容(重点)SELECTJSON_EXTRACT(content, '$.blog' ) AS '个人博客',JSON_EXTRACT(content, '$.content' ) AS '个人信息' FROMt_base_info

1.6.JSON完整内容

? 官方文档:
https://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html

? 官网上给的语句很多,我挑的是比较常用的几个,主要还是JSON_EXTRACT用的很常见

分类函数描述创建jsonjson_array创建json数组json_object创建json对象json_quote将json转成json字符串类型查询jsonjson_contains判断是否包含某个json值json_contains_path判断某个路径下是否包json值json_extract提取json值column-&>pathjson_extract的简洁写法,MySQL 5.7.9开始支持column-&>&>pathjson_unquote(column -&> path)的简洁写法json_keys提取json中的键值为json数组json_search按给定字符串关键字搜索json,返回匹配的路径修改jsonjson_append废弃,MySQL 5.7.9开始改名为json_array_appendjson_array_append末尾添加数组元素,如果原有值是数值或json对象,则转成数组后,再添加元素json_array_insert插入数组元素Json_insert插入值(插入新值,但不替换已经存在的旧值)json_merge合并json数组或对象json_remove删除json数据json_replace替换值(只替换已经存在的旧值)json_set设置值(替换旧值,并插入不存在的新值)json_unquote去除json字符串的引号,将值转成string类型返回json属性json_depth返回json文档的最大深度json_length返回json文档的长度json_type返回json值得类型json_valid判断是否为合法json文档

2.SQL&–时间计算比较

? SQL里面最常见的就是时间的查询比较了,下面列出自己平时用的比较多的SQL时间比较

2.1.时间&–添加、减少

#现在时间增加1分钟SELECT date_add(now(), interval 1 HOUR_MINUTE)#现在时间减少1分钟SELECT date_sub(now(), interval 1 HOUR_MINUTE)

2.2时间格式转换

#时间格式转换--年月日  时分秒select DATE_FORMAT(now(), '%Y-%m-%d')select DATE_FORMAT(now(), '%Y-%m-%d %H:%i:%s')

2.3统计本年/本月/本周/本日(重点*)

? SQL时间比较中最多的应该就是统计本年/本月/本周/本日的时间了

#统计本年/本月/本周/本日数据 #注:这里统计本周的时候多个1是因为美国时间和中国时间不是一样的,需要进行校正,网上很多都没有校正SELECTnow( ),to_days( now( ) ),YEARWEEK( date_format( now( ), '%Y-%m-%d' ), 1 ),YEAR ( now( ) ) WHEREto_days( now( ) ) = to_days( now( ) ) OR YEARWEEK( date_format( now( ), '%Y-%m-%d' ), 1 ) = YEARWEEK( now( ), 1 ) OR DATE_FORMAT( now( ), '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' ) OR YEAR ( now( ) ) = YEAR ( now( ) )

2.4 时间格式总结

? 注意:SQL时间如下这种

YEAR,MONTH,DAY,HOUR,MINUTE,SECOND,MICROSECOND

? 而且类似这种interval &‘1 2 3 4&’day_second都是从右往左根据时间类型看,这种就是1天2小时3分钟4秒,比如如下这种

#比当前时间减少了1天2小时3分钟4秒select now(), now() - interval '1 2 3 4' DAY_SECOND#比当前时间减少了1分钟select now(), now() - interval '1' HOUR_MINUTE

? 下面是SQL中时间的所有格式

MICROSECONDSECONDMINUTEHOURDAYWEEKMONTHQUARTERYEARSECOND_MICROSECONDMINUTE_MICROSECONDMINUTE_SECONDHOUR_MICROSECONDHOUR_SECONDHOUR_MINUTEDAY_MICROSECONDDAY_SECONDDAY_MINUTEDAY_HOURYEAR_MONTH

3.SQL&–字符串

3.1.Concat&–模糊查询

select now() where now() like CONCAT('%', 'huyuqiao ','%')

3.2.locate&–查找字符串

#子串在字符串中第一次出现索引(从1开始数,没找到则返回0)select locate('qiao', 'huyuqiaoqiao')

3.3.If、Case、Round&–优化显示与字段计算

? 下面这些是用于优化查询字段的,1可以改成table.column。

# 判断字段: Round(number,保留几位有效数字,默认四舍五入)SELECTIF( 1 = 1, '是', '否' ) AS '状态',CASE1 WHEN 1 THEN'扣款' WHEN 2 THEN'奖励' WHEN 3 THEN'投诉' END 申请类型,CONCAT( CASE 1 WHEN 1 THEN '-' WHEN 2 THEN '+' WHEN 3 THEN '-' END, ROUND( 200 / 100, 2 ) ) AS 金额

书山有路勤为径,学海无涯苦作舟。程序员不仅要懂代码,更要懂生活,关注我,一起进步。

“sql时间范围查询(数据库sql语句大全实例)” 的相关文章

制作微信公众号需要多少钱(简介开通公众号的认证费)

在微信上开店的方式已经十分常见,现阶段人们更多的是选择公众号开设小程序商城或是其他微信商城,可供选择的类型比较多样。今天hishop移动云商城的小编就和各位分享...

产品推广计划怎么写(手把手教你写推广计划书)

写品牌推广方案,看上去挺难,因为感觉要说一个很庞大的计划,其实一点儿也不难。写品牌推广计划,换句话来说,就是把一个模糊的事情把它具体化,帮助一个idea落地,变...

win10输入法切换不出来怎么办,Win10无法切换输入法解决

我们知道,Win10系统输入法之间的切换,可以使用快捷键Ctrl+空格。但是,一些win10系统的用户反映说:按下该组快捷键之后,Win10系统输入法没有反应,...

e代驾加盟费是多少(爆料E代驾收费标准)

前期e代驾势头迅猛目前代驾平台,有e代驾、滴滴、顺风车代驾、优优代驾等,而e代驾在这领域是最早布局且最成功打入市场的,超过10万的注册司机和业务覆盖近200个城...

公司股权变更流程,股权变更需要什么材料

股权变更在一个公司是很常见的,尤其是家族企业,很多都会将自己的股权留给后一代。想必很多人想要了解,股权变更代办靠谱吗?公司股权变更所需资料有哪些?公司股权变更程...

winform导出excel设置格式(导出excel的方法汇总)

1.服务端输出方式1.1html输出方式最常用方式优点:不需要任何插件缺点:不是真正excel文件,做不了太复杂的格式,偶尔会出现打不开的情况代码示例:Resp...

冰冻荔枝可以保存多久,美味冻荔枝的神仙吃法大全

说到夏天的水果,你最爱的是哪一样呢?我先回答:我最喜欢的就是荔枝了,把每个品种都吃个遍后,发现荔枝和这三样东西搭配起来也挺好吃的,自己做也非常方便。最大的难度就...

seo免费排名的软件有哪些,网站排名优化的四个技巧

我做SEO已经有12年了,这是我想要坚持一辈子的事业,因为我很喜欢。懂得操作SEO就不需要整天去外面风吹日晒地跑业务了,每天坐在电脑旁还可以赚很多的钱。我相信很...

pdf直接修改工具有哪些(手机上免费编辑pdf的软件介绍)

现在我们平时无论是工作还是学习中日常文档使用最多的几乎都是PDF格式,但相较Word打开就能直接修改,PDF文档应该如何编辑呢?如果使用PDF编辑器进行修改呢?...

mac熄屏时间怎么设置(mac使用中突然黑屏解决方法)

我们在使用Mac电脑的过程中,会发现在一段时间内没有操作电脑,电脑屏幕就会锁屏。但是有很多小伙伴会使用电脑观看小说,因此不喜欢屏幕总是锁屏,这时候就可以将电脑设...