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 ...
随机推荐
- ORM执行SQL 双下划线查询 ORM外键字段创建 外键字段相关操作 ORM跨表查询 跨表查询进阶操作
目录 ORM执行SQL语句 方式1:使用pymysql模块 方式2:使用raw方法 方式3:django connection 双下划线查询 __gt(>) __lt(<) queryse ...
- 使用jasypt加密配置的时候,报错:DecryptionException: Unable to decrypt
前几天分享了一篇<Spring Boot 2.x基础教程:加密配置中的敏感信息> ,然后看到群里有小伙伴反应跟着这篇文章出现了这个异常com.ulisesbocchio.jasyptspr ...
- 【网摘】SQL练习题
原文链接:Here
- Deltix Round, Spring 2021 (open for everyone, rated, Div. 1 + Div. 2) (ABCE补题记录)
补题链接:Here 1523A. Game of Life 生命游戏定义 本题中改编为一维坐标上的生命游戏 即使 \(m(m\in[1,1e9])\) 的范围很大,但每次进化不会超过 \(n\) 次, ...
- shell脚本(4)-格式化输入
一.read命令 1.概念: 默认接受键盘的输入,回车符代表输入结束 2.read命令选项 -p:打印信息 -t:限定时间 -s:不回显 -n:输入字符个数 3.举例说明 (1)模拟登录 [root@ ...
- nginx.conf 配置解析及常用配置
本文为博主原创,未经允许不得转载: nginx.conf 配置文件配置解析 #定义 Nginx 运行的用户和用户组.默认nginx的安装用户为 nobody user www www: #启动进程,通 ...
- [转帖]解Bug之路-记一次中间件导致的慢SQL排查过程
https://zhuanlan.zhihu.com/p/242265937 解Bug之路-记一次中间件导致的慢SQL排查过程 前言 最近发现线上出现一个奇葩的问题,这问题让笔者定位了好长时间,期间排 ...
- [转帖]京东大佬细说:Nginx反向代理时保持长连接,看完直呼"学到了!"
https://mp.weixin.qq.com/s?__biz=MzU1MzE2NzIzMg==&mid=2247488405&idx=1&sn=7081ff4e0ac1de ...
- [转帖]Linux命令(64)——strings命令
https://cloud.tencent.com/developer/article/1414999 1.命令简介 strings命令是二进制工具集GNU Binutils的一员,用于打印文件中可打 ...
- [转帖]linux shell 中数组的定义和for循环遍历的方法
https://www.cnblogs.com/ysk123/p/11510718.html linux 中定义一个数据的语法为: variable=(arg1 arg2 arg3 ....) 中间用 ...