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之Sequelize
一.环境: Vue.Quasar.Electron.Postgres.Sequelize.sequelize-auto 二.安装 (1)添加Sequelize(全局安装) $npm install - ...
- 【有奖体验】叮!你有一张 3D 卡通头像请查收
立即体验基于函数计算部署[图生图]一键部署3D卡通风格模型: https://developer.aliyun.com/topic/aigc_fc 人工智能生成内容(Artificial Intell ...
- treeselect 表单验证解决方法
https://www.cnblogs.com/wxqworld/p/11203603.html
- Vue 大屏可视化 铺满全屏
https://blog.csdn.net/u011097323/article/details/106728221?utm_medium=distribute.pc_aggpage_search_r ...
- docker目录迁移流程
概述 在安装测试最新版本的HOMER7的过程中,docker作为基础工具碰到一些问题,针对问题进行总结. docker的默认工作目录在/var目录,而在我们的环境中,/var目录空间预留不足,随着do ...
- 【Spring 5核心原理】1设计模式
1.1开闭原则 开闭原则(open-closed principle,OCP)是指一个软件实体(如类,模块和函数)应该对扩展开放,对修改关闭.所谓的开闭,也正是对扩展和修改两个行为的一个原则. 强调用 ...
- Android——SQLiteOpenHelper
使用步骤: 新建一个继承自SQLiteOpenHelper的数据库操作类,提示重写onCreate和OnUpgraed两个方法.其中,onCreate方法只在第一次打开数据库时执行,在此可进行表结构创 ...
- [转帖]如何在KingbaseES数据库查看数据库和表的大小
关键字 kingbaseES,数据库大小,表大小 1.查看单个数据库的大小 使用ksql连接到数据库,使用sys_database_size函数 kapp=# select sys_database_ ...
- [转帖]kafka漏洞升级记录,基于SASL JAAS 配置和 SASL 协议,涉及版本3.4以下
攻击者可以使用基于 SASL JAAS 配置和 SASL 协议的任意 Kafka 客户端,在对 Kafka Connect worker 创建或修改连接器时,通过构造特殊的配置,进行 JNDI 注入. ...
- [转帖]Megacli 错误码
MegaCLI Error Messages 0x00 Command completed successfully 0x01 Invalid command 0x02 DCMD opcode is ...