百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

MySQL 字符串与时间操作函数(mysql字符串转时间函数)

toyiye 2024-07-15 01:25 8 浏览 0 评论

? 文章声明 ?

该系列文章部分文字描述,参考于以下文献,化繁为简.

《MySQL5.7从入门到精通》 - 刘增杰

MariaDB [lyshark]> select Name,char_length(Name) from lyshark;       -- 求字符串长度

+------------+-------------------+
| Name       | char_length(Name) |
+------------+-------------------+
| apple      |                 5 |
| apricot    |                 7 |
| blackberry |                10 |
+------------+-------------------+
17 rows in set (0.00 sec)


MariaDB [lyshark]> select concat("{ID: ",Gid,", Name: ",Name,"}") from lyshark;
+-----------------------------------------+
| concat("{ID: ",Gid,", Name: ",Name,"}") |
+-----------------------------------------+
| {ID: 101, Name: apple}                  |
| {ID: 103, Name: apricot}                |
| {ID: 101, Name: blackberry}             |
| {ID: 104, Name: berry}                  |
+-----------------------------------------+
17 rows in set (0.00 sec)


-- 如果为空则输出null
MariaDB [lyshark]> select concat("{ID: ",Gid,", Name: ",ifnull(Name,"NULL"),"}") from lyshark;   


-- 以,作为连接,将两个值串起来。
MariaDB [lyshark]> select concat_ws(',',"Name: ","lyshark");
+-----------------------------------+
| concat_ws(',',"Name: ","lyshark") |
+-----------------------------------+
| Name: ,lyshark                    |
+-----------------------------------+
1 row in set (0.00 sec)





-- 字符串替换,从第7个字符串开始替换,向后替换10个。
MariaDB [lyshark]> select insert('hello world',7,10,'lyshark');
+--------------------------------------+
| insert('hello world',7,10,'lyshark') |
+--------------------------------------+
| hello lyshark                        |
+--------------------------------------+
1 row in set (0.00 sec)




-- 返回str字符串中第一个出现substr字符串的位置
MariaDB [lyshark]> select instr('hello lyshark','lyshark');
+----------------------------------+
| instr('hello lyshark','lyshark') |
+----------------------------------+
|                                7 |
+----------------------------------+
1 row in set (0.00 sec)


-- 字符串截断
MariaDB [lyshark]> select left('hello lyshark',3);
+-------------------------+
| left('hello lyshark',3) |
+-------------------------+
| hel                     |
+-------------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select right('hello lyshark',3);
+--------------------------+
| right('hello lyshark',3) |
+--------------------------+
| ark                      |
+--------------------------+
1 row in set (0.00 sec)



-- 返回str字符串的byte字节长度
MariaDB [lyshark]> select length('aaaaafasdfasd');
+-------------------------+
| length('aaaaafasdfasd') |
+-------------------------+
|                      13 |
+-------------------------+
1 row in set (0.00 sec)


-- 返回str字符串中第一次出现substr字符串的位置,如果没有则返回null
MariaDB [lyshark]> select locate('lys','hello lyshark');
+-------------------------------+
| locate('lys','hello lyshark') |
+-------------------------------+
|                             7 |
+-------------------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select locate('bar','foobarbar',5);
+-----------------------------+
| locate('bar','foobarbar',5) |
+-----------------------------+
|                           7 |
+-----------------------------+
1 row in set (0.00 sec)


-- 字符串大小写转换
MariaDB [lyshark]> select lower('ABD');
+--------------+
| lower('ABD') |
+--------------+
| abd          |
+--------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select upper('abc');
+--------------+
| upper('abc') |
+--------------+
| ABC          |
+--------------+
1 row in set (0.00 sec)



-- 去掉左右两边的空格

MariaDB [lyshark]> select ltrim('   abc dde eee    ');
+-----------------------------+
| ltrim('   abc dde eee    ') |
+-----------------------------+
| abc dde eee                 |
+-----------------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select rtrim('   abc dde eee    ');
+-----------------------------+
| rtrim('   abc dde eee    ') |
+-----------------------------+
|    abc dde eee              |
+-----------------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select trim('   abc dde eee    ');
+----------------------------+
| trim('   abc dde eee    ') |
+----------------------------+
| abc dde eee                |
+----------------------------+
1 row in set (0.00 sec)
-- 替换字符串中的字符
MariaDB [lyshark]> select replace('hello world world','world','lyshark');
+------------------------------------------------+
| replace('hello world world','world','lyshark') |
+------------------------------------------------+
| hello lyshark lyshark                          |
+------------------------------------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select substring('sublyshark',3,2);
+-----------------------------+
| substring('sublyshark',3,2) |
+-----------------------------+
| bl                          |
+-----------------------------+
1 row in set (0.00 sec)




-- 字符串截取,联系
MariaDB [lyshark]> insert into if_test(name,sex) values("zhang san",1);
MariaDB [lyshark]> insert into if_test(name,sex) values("li si",1);
MariaDB [lyshark]> insert into if_test(name,sex) values("wang wu",1);


MariaDB [lyshark]> select name,locate(' ',name) from if_test;
+-----------+------------------+
| name      | locate(' ',name) |
+-----------+------------------+
| lyshark   |                0 |
| admin     |                0 |
| luxi      |                0 |
| zhang san |                6 |
| li si     |                3 |
| wang wu   |                5 |
+-----------+------------------+
6 rows in set (0.00 sec)


MariaDB [lyshark]> select name,substring(name,locate(' ',name)) from if_test;
+-----------+----------------------------------+
| name      | substring(name,locate(' ',name)) |
+-----------+----------------------------------+
| zhang san |  san                             |
| li si     |  si                              |
| wang wu   |  wu                              |
+-----------+----------------------------------+
6 rows in set (0.00 sec)

MariaDB [lyshark]> select name,substring(name,1,locate(' ',name)+1) from if_test;
+-----------+------------------------------------+
| name      | substring(name,1,locate(' ',name)) |
+-----------+------------------------------------+
| zhang san | zhang                              |
| li si     | li                                 |
| wang wu   | wang                               |
+-----------+------------------------------------+
6 rows in set (0.00 sec)
MariaDB [lyshark]> select * from lyshark order by rand();   -- 随机输出数据
MariaDB [lyshark]> select floor(rand()*10);                 -- 取出随机整数
MariaDB [lyshark]> select round(10.25);



-- 时区转换
MariaDB [lyshark]> select CONVERT_TZ('2009-12-11 12:00:00','+00:00','+10:00');
+-----------------------------------------------------+
| CONVERT_TZ('2009-12-11 12:00:00','+00:00','+10:00') |
+-----------------------------------------------------+
| 2009-12-11 22:00:00                                 |
+-----------------------------------------------------+
1 row in set (0.00 sec)


MariaDB [lyshark]> select curdate();
+------------+
| curdate()  |
+------------+
| 2020-07-02 |
+------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select current_date();
+----------------+
| current_date() |
+----------------+
| 2020-07-02     |
+----------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select now();
+---------------------+
| now()               |
+---------------------+
| 2020-07-02 07:30:26 |
+---------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select sysdate();
+---------------------+
| sysdate()           |
+---------------------+
| 2020-07-02 07:30:54 |
+---------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select current_time();
+----------------+
| current_time() |
+----------------+
| 07:31:12       |
+----------------+
1 row in set (0.00 sec)

-- 获取差异时间
MariaDB [lyshark]> select datediff('2020-12-25','2020-11-22');
+-------------------------------------+
| datediff('2020-12-25','2020-11-22') |
+-------------------------------------+
|                                  33 |
+-------------------------------------+
1 row in set (0.00 sec)

-- 时间增加减少

MariaDB [lyshark]> select date_add('2020-11-24',INTERVAL -100 SECOND);  // 减少100秒
MariaDB [lyshark]> select date_add('2020-11-24',INTERVAL 100 SECOND);  // 增加100秒

MariaDB [lyshark]> select date_add('2020-11-24',INTERVAL '12:22' MINUTE_SECOND);
+-------------------------------------------------------+
| date_add('2020-11-24',INTERVAL '12:22' MINUTE_SECOND) |
+-------------------------------------------------------+
| 2020-11-24 00:12:22                                   |
+-------------------------------------------------------+
1 row in set (0.00 sec)


SECOND/DAY/WEEK/HOUR/


-- 日期格式转换
MariaDB [lyshark]> select date_format(now(),'%Y:%m:%d');
+-------------------------------+
| date_format(now(),'%Y:%m:%d') |
+-------------------------------+
| 2020:07:02                    |
+-------------------------------+
1 row in set (0.00 sec)

MariaDB [lyshark]> select dayofmonth('2020-06-24');   返回date中当前月份是第几天
MariaDB [lyshark]> select dayname('2020-06-24');      返回date中是星期几
MariaDB [lyshark]> select dayofweek('2020-06-24');    返回date时间是星期几

MariaDB [lyshark]> select extract(YEAR from '2009-12-21');   获取年份
MariaDB [lyshark]> select extract(YEAR_MONTH from '2009-12-21');   获取年月
MariaDB [lyshark]> select last_day('2015-12-12');             获取当月最后一天
MariaDB [lyshark]> select unix_timestamp();              unix时间戳
MariaDB [lyshark]> select from_unixtime(unix_timestamp());   将时间戳转换为时间

字符集

1.设置my.ini

[mysqld]
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
 
[client]
# 设置mysql客户端连接服务端时默认使用的端口
default-character-set=utf8

MariaDB [lyshark]> select * from information_schema.character_sets;  查询所支持的字符集
MariaDB [lyshark]> show character set like 'utf8%';
MariaDB [lyshark]> show variables like 'character_set%';

set global character_set_client=utf8;
set global character_set_connection=utf8;
set global character_set_database=utf8;
set global character_set_results=utf8;
set global character_set_server=utf8;


MariaDB [lyshark]> alter database lyshark default character set utf8 collate utf8_general_ci;
MariaDB [lyshark]> alter table lyshark.user convert to character set utf8 collate utf8_general_ci;

表分区

表分区是将?个表的数据按照?定的规则?平划分为不同的逻辑块,并分别进?物理存储,

这个规则就叫做分区函数

DROP TABLE IF EXISTS `emept`;
create table emept
(
u_id int not null,
u_name varchar(30),
store_id int not null
)
PARTITION BY RANGE(store_id)
(PARTITION p0 values less than(6),PARTITION p1 values less than(11),
PARTITION p2 values less than(16),PARTITION p3 values less than(21) );

insert into emept values(1,'aaaa',1);
insert into emept values(2,'bbbb',2);
insert into emept values(3,'aaaa',3);
insert into emept values(3,'aaaa',8);
insert into emept values(3,'aaaa',19);

explain select * from emept where store_id=1;
MariaDB [lyshark]> create table abc(name varchar(20)) charset utf8mb4;

来源:https://blog.51cto.com/lyshark/5322127

“做程序员,圈子和学习最重要”因为有有了圈子可以让你少走弯路,扩宽人脉,扩展思路,学习他人的一些经验及学习方法!同时在这分享一下是一直以来整理的Java后端进阶笔记文档和学习资料免费分享给大家!需要资料的朋友私信我扣【06】

相关推荐

为何越来越多的编程语言使用JSON(为什么编程)

JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

何时在数据库中使用 JSON(数据库用json格式存储)

在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

JSON对象花样进阶(json格式对象)

一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

深入理解 JSON 和 Form-data(json和formdata提交区别)

在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

JSON 语法(json 语法 priority)

JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

JSON语法详解(json的语法规则)

JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

MySQL JSON数据类型操作(mysql的json)

概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

JSON的数据模式(json数据格式示例)

像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

前端学习——JSON格式详解(后端json格式)

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

什么是 JSON:详解 JSON 及其优势(什么叫json)

现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

PostgreSQL JSON 类型:处理结构化数据

PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

JavaScript:JSON、三种包装类(javascript 包)

JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

Python数据分析 只要1分钟 教你玩转JSON 全程干货

Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

比较一下JSON与XML两种数据格式?(json和xml哪个好)

JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

取消回复欢迎 发表评论:

请填写验证码