MySQL 字符串与时间操作函数
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;
MySQL 字符串与时间操作函数的更多相关文章
- mysql时间操作函数和存储过程
因为业务须要统计一批数据.用到关于mysql的时间操作函数和存储过程,问题已经基本解决.把过程记录下: 1. mysql的语句中不支持直接用循环.循环仅仅能在存储过程中使用. 2. 写为文件时,注意一 ...
- MySQL 日期、时间转换函数
MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...
- MySQL 获得当前日期时间\时间戳 函数 ( 转自传智播客)
MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +-------+ | now() | +-- ...
- MySQL 获得当前日期时间\时间戳 函数
MySQL 获得当前日期时间 函数 1.1 获得当前日期+时间(date + time)函数:now() mysql> select now(); +———————+ | now() | +—— ...
- c++-字符串和时间操作
C++ 字符串 C++ 提供了以下两种类型的字符串表示形式: C 风格字符串 C++ 引入的 string 类类型 C 风格字符串 C 风格的字符串起源于 C 语言,并在 C++ 中继续得到支持.字符 ...
- T-SQL——函数——时间操作函数
目录 0. 日期和时间类型 0.0 时间类型 1. 转换函数 1.1 CAST 1.2 CONVERT 2. 日期操作函数 2.0 GETDATE和GETUTCDATE 2.1 SYSDATETIME ...
- SQL-数学、字符串、时间日期函数和类型转换
--数学函数 --ABS绝对值,select ABS(-99)--ceiling取上限,select CEILING(4.5)--floor去下限select FLOOR(4.5)--power 几次 ...
- python字符串和数值操作函数大全(非常全)
字符串和数值型数字的操作大全 1.反斜杠\的使用规则:一般使用表示续行的操作,可以其他符号相结合组成其他的一些使用符号,转义字符\‘的使用会识别引号,使得字符串中的引号和外面本来的啊引号相区分. (1 ...
- MYSQL常用的时间日期函数
#时间日期函数 #获取当前日期XXXX-XX-XXSELECT CURRENT_DATE(); SELECT CURDATE();#效果与上一条相同 #获取当前日期与时间XXXX-XX-XX XX:X ...
- mysql 常用的时间日期函数小结
本文主要是总结一些常用的在实际运用中常用的一些mysql时间日期以及转换的函数 1.now() :返回当前日期和时间 select now(); //2018-04-21 09:19:21 2.cu ...
随机推荐
- 【Boost】boost.log 要点笔记
常用简写: namespace logging = boost::log; namespace src = boost::log::sources; namespace expr = boost::l ...
- SpringBoot 项目实战 | 瑞吉外卖 Day05
该系列将记录一份完整的实战项目的完成过程,该篇属于第五天 案例来自B站黑马程序员Java项目实战<瑞吉外卖>,请结合课程资料阅读以下内容 该篇我们将完成以下内容: 新增套餐 套餐信息分页查 ...
- JSP 学习笔记 | 一、JSP 原理理解
前文:IDEA | 使用Maven创建Web项目并配置Tomcat JSP(全称:Java Server Pages):Java 服务端页面.是一种动态的网页技术,其中既可以定义 HTML.JS.CS ...
- mock.js使用
前后端联调必备技术之Mock讲解 什么是Mock数据? 处于开发环境模拟接口返回的数据(用于开发状态后端还没给接口) 不会影响生产环境,只是方便我们还没与后端交互时,不阻塞我们开发流程 mock数据好 ...
- 【TouxhGFX】集成 之 《Using C code with TouchGFX》
在TouchGFX中使用C代码 您可能已经知道,TouchGFX是用C ++实现的,而TouchGFX API也是C ++.这意味着至少直接与UI相关的代码必须是C ++代码.但是,并不需要整个系统都 ...
- Java-Enum常量特定方法
OnJava8-Enum-常量特定方法 用枚举实现责任链模式 责任链(Chain Of Responsibility)设计模式先创建了一批用于解决目标问题的不同方法,然后将它们连成一条"链& ...
- SpringMVC08——拦截器——2021-05-11
拦截器概述 SpringMVC的拦截器(Interceptor)类似于Servlet中的过滤器(Filter),它主要用于拦截用户请求并做相应的处理. 例如:进行权限验证.记录请求信息的日志.判断用户 ...
- 百度网盘(百度云)SVIP超级会员共享账号每日更新(2024.01.03)
一.百度网盘SVIP超级会员共享账号 可能很多人不懂这个共享账号是什么意思,小编在这里给大家做一下解答. 我们多知道百度网盘很大的用处就是类似U盘,不同的人把文件上传到百度网盘,别人可以直接下载,避免 ...
- [转帖]Unicode与utf的前世今生
https://www.cnblogs.com/naodong/p/12742987.html 历史上存在两个独立的尝试创立单一字符集的组织,即 国际标准化组织(ISO)于1984年创建的通用字符集( ...
- [转帖]CoreDNS loop 插件异常问题
https://zhuanlan.zhihu.com/p/476611162 背景 最近有遇到一个客户集群,发现集群中的 CoreDNS 老是异常 (loop 插件检测到有回路后进行 panic) ...