八、MySQL 常用函数汇总(1)
文章目录
- 一、函数
- 1.1 函数简介
- 1.2 不同DBMS函数的差异
- 二、数学函数
- 2.1 绝对值函数ABS(x)和返回圆周率的函数PI()
- 2.2 平方根函数SQRT(x)和求余函数MOD(x,y)
- 2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)
- 2.4 获取随机数的函数RAND()和RAND(x)
- 2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
- 2.6 符号函数SIGN(x)
- 2.7 幂运算函数POW(x,y)、POWER(x,y)和EXP(x)
- 2.8 对数运算函数LOG(x)和LOG10(x)
- 2.9 其他数学函数(不怎么常用)
- 三、字符串函数
- 3.1 计算字符串字符数的函数和字符串长度的函数
- 3.2 合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)
- 3.3 替换字符串的函数INSERT(s1,x,len,s2)
- 3.4 字母大小写转换函数
- 3.5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)
- 3.6 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
- 3.7 删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)
- 3.8 删除指定字符串的函数TRIM(s1 FROM s)
- 3.9 重复生成字符串的函数REPEAT(s,n)
- 3.10 空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)
- 3.11 比较字符串大小的函数STRCMP(s1,s2)
- 3.12 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)
- 3.13 匹配子串开始位置的函数
- 3.14 字符串逆序的函数REVERSE(s)
- 3.15 返回指定位置的字符串的函数
- 3.16 返回指定字符串位置的函数FIELD(s,s1,s2,…,sn)
- 3.17 返回子串位置的函数FIND_IN_SET(s1,s2)
- 3.18 选取字符串的函数MAKE_SET(x,s1,s2,…,sn)
- 四、日期和时间函数
- 4.1 获取当前日期的函数和获取当前时间的函数
- 4.2 获取当前日期和时间的函数
- 4.3 UNIX时间戳函数
- 4.4 返回UTC日期的函数和返回UTC时间的函数
- 4.5 获取月份的函数MONTH(date)和MONTHNAME(date)
- 4.6 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
- 4.7 获取星期数的函数WEEK(d)和WEEKOFYEAR(d)
- 4.8 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
- 4.9 获取年份、季度、小时、分钟和秒钟的函数
- 4.10 获取日期的指定值的函数EXTRACT(type FROM date)
- 4.11 时间和秒钟转换的函数
- 4.12 计算日期和时间的函数
- 4.13 将日期和时间格式化的函数
MySQL 提供了众多功能强大、方便易用的函数。使用这些函数,可以极大地提高用户对数据库的管理效率。MySQL 中的函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等函数。本文将介绍 MySQL 中这些函数的功能和用法。
前置知识:
一、数据库开发与实战专栏导学及数据库基础概念入门
二、MySQL 介绍及 MySQL 安装与配置
三、MySQL 数据库的基本操作
四、MySQL 存储引擎及数据类型
五、数据导入与基本的 SELECT 语句
六、MySQL 数据库练习题1(包含前5章练习题目及答案)
七、MySQL 多表查询详解(附练习题及答案----超详细)
一、函数
1.1 函数简介
函数在计算机语言的使用中贯穿始终,函数的作用是什么呢?它可以把我们经常使用的代码封装起来,需要的时候直接调用即可。这样既 提高了代码效率
,又 提高了可维护性
。在 SQL 中我们也可以使用函数对检索出来的数据进行函数操作,使用这些函数,数据库功能可以变得更加强大,可以更加灵活地满足不同用户的需求,可以极大地 提高用户对数据库的管理效率
。
从函数定义的角度出发,我们可以将函数分成 内置函数
和 自定义函数
。在 SQL 语言中,同样也包括了内置函数和自定义函数。内置函数是系统内置的通用函数,而自定义函数是我们根据自己的需要编写的,本文讲解的是 SQL 的内置函数。MySQL 提供了丰富的内置函数,各类函数从功能方面主要分为 数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数 等函数。本文将分类介绍不同函数的使用方法。
1.2 不同DBMS函数的差异
我们在使用 SQL 语言的时候,不是直接和这门语言打交道,而是通过它使用不同的数据库软件,即 DBMS。DBMS 之间的差异性很大,远大于同一个语言不同版本之间的差异。实际上,只有很少的函数是被 DBMS 同时支持的。比如,大多数 DBMS 使用 (||)
或者 (+)
来做拼接符,而在 MySQL 中的字符串拼接函数为 concat()
。大部分 DBMS 会有自己特定的函数,这就意味着采用 SQL 函数的代码可移植性是很差的,因此在使用函数的时候需要特别注意。
二、数学函数
数学函数主要用来处理数值数据,数学函数主要有绝对值函数、三角函数(包括正弦函数、余弦函数、正切函数、余切函数等)、对数函数、随机数函数等。在产生错误时,数学函数将会返回空值 NULL。本小节将介绍各种数学函数的作用和用法。
2.1 绝对值函数ABS(x)和返回圆周率的函数PI()
ABS(X) 返回 X 的绝对值。【示例1】求2、-3.3 和 -33 的绝对值,输入语句如下:
mysql> SELECT ABS(2), ABS(-3.3), ABS(-33);
+--------+-----------+----------+
| ABS(2) | ABS(-3.3) | ABS(-33) |
+--------+-----------+----------+
| 2 | 3.3 | 33 |
+--------+-----------+----------+
1 row in set (0.00 sec)
#正数的绝对值为其本身,2的绝对值为2。负数的绝对值为其相反数,-3.3的绝对值为3.3 -33的绝对值为33。
PI()返回圆周率 π
的值,默认显示小数位数是6位。【示例2】返回圆周率值,输入语句如下:
mysql> SELECT PI();
+----------+
| PI() |
+----------+
| 3.141593 |
+----------+
1 row in set (0.00 sec)mysql>
2.2 平方根函数SQRT(x)和求余函数MOD(x,y)
SQRT(x) 返回非负数x的二次平方根。 【示例3】求9、40和-49的二次平方根,输入语句如下:
#负数没有平方根,因此-49的平方根返回的结果为NULL。
mysql> SELECT SQRT(9), SQRT(40), SQRT(-49);
+---------+-------------------+-----------+
| SQRT(9) | SQRT(40) | SQRT(-49) |
+---------+-------------------+-----------+
| 3 | 6.324555320336759 | NULL |
+---------+-------------------+-----------+
1 row in set (0.00 sec)
MOD(x,y)
返回 x
被 y
除后的余数,MOD()
对于带有小数部分的数值也起作用,它返回除法运算后的精确余数。 【示例4】对(31,8)、(234, 10)、(45.5,6)进行求余运算,输入语句如下:
mysql> SELECT MOD(31,8),MOD(234, 10),MOD(45.5,6);
+-----------+--------------+-------------+
| MOD(31,8) | MOD(234, 10) | MOD(45.5,6) |
+-----------+--------------+-------------+
| 7 | 4 | 3.5 |
+-----------+--------------+-------------+
1 row in set (0.00 sec)
2.3 获取整数的函数CEIL(x)、CEILING(x)和FLOOR(x)
CEIL(x)
和 CEILING(x)
的意义相同,返回不小于 x
的最小整数值,返回值转化为一个 BIGINT
。 【示例5】使用 CEILING 函数返回最小整数,输入语句如下:
mysql> SELECT CEIL(-3.35),CEILING(3.35);
+-------------+---------------+
| CEIL(-3.35) | CEILING(3.35) |
+-------------+---------------+
| -3 | 4 |
+-------------+---------------+
1 row in set (0.00 sec)
#-3.35为负数,不小于-3.35的最小整数为-3,因此返回值为-3;不小于3.35的最小整数为4,因此返回值为4。
FLOOR(x)
返回不大于 x
的最大整数值,返回值转化为一个 BIGINT
。【示例6】使用FLOOR函数返回最大整数,输入语句如下:
mysql> SELECT FLOOR(-3.35), FLOOR(3.35);
+--------------+-------------+
| FLOOR(-3.35) | FLOOR(3.35) |
+--------------+-------------+
| -4 | 3 |
+--------------+-------------+
1 row in set (0.00 sec)
2.4 获取随机数的函数RAND()和RAND(x)
RAND(x)
返回一个随机浮点值v,范围在0到1之间 (0 ≤ v ≤ 1.0)
。若已指定一个整数参数x,则它被用作种子值,用来产生重复序列。 【示例7】使用RAND()函数产生随机数,输入语句如下:
#可以看到,不带参数的RAND()每次产生的随机数值是不同的。
mysql> SELECT RAND(),RAND(),RAND();
+--------------------+---------------------+--------------------+
| RAND() | RAND() | RAND() |
+--------------------+---------------------+--------------------+
| 0.7769518548408075 | 0.44221097178963104 | 0.8801993251593777 |
+--------------------+---------------------+--------------------+
1 row in set (0.00 sec)
【示例8】使用RAND(x)函数产生随机数,输入语句如下:
mysql> SELECT RAND(10),RAND(10),RAND(11);
+--------------------+--------------------+-------------------+
| RAND(10) | RAND(10) | RAND(11) |
+--------------------+--------------------+-------------------+
| 0.6570515219653505 | 0.6570515219653505 | 0.907234631392392 |
+--------------------+--------------------+-------------------+
1 row in set (0.00 sec)
可以看到,当 RAND(x)
的参数相同时,将产生相同的随机数,不同的 x
产生的随机数值不同。
2.5 函数ROUND(x)、ROUND(x,y)和TRUNCATE(x,y)
ROUND(x)
返回最接近于参数 x
的整数,对 x
值进行四舍五入。【示例9】使用ROUND(x)函数对操作数进行四舍五入,输入语句如下:
mysql> SELECT ROUND(-1.14),ROUND(-1.67), ROUND(1.14),ROUND(1.66);
+--------------+--------------+-------------+-------------+
| ROUND(-1.14) | ROUND(-1.67) | ROUND(1.14) | ROUND(1.66) |
+--------------+--------------+-------------+-------------+
| -1 | -2 | 1 | 2 |
+--------------+--------------+-------------+-------------+
1 row in set (0.00 sec)
可以看到,四舍五入处理之后,只保留了各个值的整数部分。ROUND(x,y)
返回最接近于参数 x
的数,其值保留到小数点后面 y
位,若 y
为负值,则将保留 x
值到小数点左边 y
位。 【示例10】使用ROUND(x,y)函数对操作数x进行四舍五入操作,结果保留小数点后面y位,输入语句如下:
mysql> SELECT ROUND(1.38, 1), ROUND(1.38, 0), ROUND(232.38, -1), ROUND(232.38,-2);
+----------------+----------------+-------------------+------------------+
| ROUND(1.38, 1) | ROUND(1.38, 0) | ROUND(232.38, -1) | ROUND(232.38,-2) |
+----------------+----------------+-------------------+------------------+
| 1.4 | 1 | 230 | 200 |
+----------------+----------------+-------------------+------------------+
1 row in set (0.00 sec)
ROUND(1.38, 1) 保留小数点后面1位,四舍五入的结果为1.4;ROUND(1.38, 0) 保留小数点后面0位,即返回四舍五入后的整数值;ROUND(23.38, -1) 和 ROUND (232.38,-2) 分别保留小数点左边1位和2位。
提示:y值为负数时,保留的小数点左边的相应位数直接保存为0,不进行四舍五入。
TRUNCATE(x,y)
返回被舍去至小数点后 y
位的数字 x
。若 y
的值为 0,则结果不带有小数点或不带有小数部分。若 y
设为负数,则截去(归零) x
小数点左起第 y
位开始后面所有低位的值。 【示例11】使用TRUNCATE(x,y)函数对操作数进行截取操作,结果保留小数点后面指定y位,输入语句如下:
mysql> SELECT TRUNCATE(1.31,1), TRUNCATE(1.99,1), TRUNCATE(1.99,0), TRUNCATE(19.99,-1);
+------------------+------------------+------------------+--------------------+
| TRUNCATE(1.31,1) | TRUNCATE(1.99,1) | TRUNCATE(1.99,0) | TRUNCATE(19.99,-1) |
+------------------+------------------+------------------+--------------------+
| 1.3 | 1.9 | 1 | 10 |
+------------------+------------------+------------------+--------------------+
1 row in set (0.00 sec)
TRUNCATE(1.31,1) 和 TRUNCATE(1.99,1) 都保留小数点后1位数字,返回值分别为 1.3和1.9;TRUNCATE(1.99,0) 返回整数部分值1;TRUNCATE(19.99,-1) 截去小数点左边第1位后面的值,并将整数部分的1位数字设置0,结果为10。
提示:ROUND(x,y)函数在截取值的时候会四舍五入,而TRUNCATE (x,y)直接截取值,并不进行四舍五入。
2.6 符号函数SIGN(x)
SIGN(x)
返回参数的符号,x
的值分别为负数、零或正数时,返回结果依次为 -1、0或1。 【示例12】使用SIGN函数返回参数的符号,输入语句如下:
#SIGN(-21)返回-1;SIGN(0)返回0;SIGN(21)返回1。
mysql> SELECT SIGN(-21),SIGN(0), SIGN(21);
+-----------+---------+----------+
| SIGN(-21) | SIGN(0) | SIGN(21) |
+-----------+---------+----------+
| -1 | 0 | 1 |
+-----------+---------+----------+
1 row in set (0.00 sec)
2.7 幂运算函数POW(x,y)、POWER(x,y)和EXP(x)
POW(x,y)
或者 POWER(x,y)
函数返回 x
的 y
次方(乘方) 的结果值。 【示例13】使用POW和POWER函数进行乘方运算,输入语句如下:
#可以看到,POW和POWER的结果是相同的,POW(2,2)和POWER(2,2)返回2的2次方,结果都是4
# POW(2,-2)和POWER(2,-2)都返回2的-2次方,结果为4的倒数,即0.25。
mysql> SELECT POW(2,2), POWER(2,2),POW(2,-2), POWER(2,-2);
+----------+------------+-----------+-------------+
| POW(2,2) | POWER(2,2) | POW(2,-2) | POWER(2,-2) |
+----------+------------+-----------+-------------+
| 4 | 4 | 0.25 | 0.25 |
+----------+------------+-----------+-------------+
1 row in set (0.00 sec)
EXP(x)
返回 e(数学中e的值约为2.7182818284)
的 x
乘方后的值。 【示例14】使用EXP函数计算e的乘方,输入语句如下:
mysql> SELECT EXP(3),EXP(-3),EXP(0);
+--------------------+----------------------+--------+
| EXP(3) | EXP(-3) | EXP(0) |
+--------------------+----------------------+--------+
| 20.085536923187668 | 0.049787068367863944 | 1 |
+--------------------+----------------------+--------+
1 row in set (0.00 sec)
2.8 对数运算函数LOG(x)和LOG10(x)
LOG(x)
返回 x
的自然对数,x
相对于基数 e
的对数。 【示例15】使用LOG(x)函数计算自然对数,输入语句如下:
mysql> SELECT LOG(3), LOG(-3);
+--------------------+---------+
| LOG(3) | LOG(-3) |
+--------------------+---------+
| 1.0986122886681098 | NULL |
+--------------------+---------+
1 row in set, 1 warning (0.00 sec)
#对数定义域不能为负数,因此LOG(-3)返回结果为NULL。
LOG10(x)
返回 x
的基数为 10
的对数。 【示例16】使用LOG10计算以10为基数的对数,输入语句如下:
mysql> SELECT LOG10(2), LOG10(100), LOG10(-100);
+--------------------+------------+-------------+
| LOG10(2) | LOG10(100) | LOG10(-100) |
+--------------------+------------+-------------+
| 0.3010299956639812 | 2 | NULL |
+--------------------+------------+-------------+
1 row in set, 1 warning (0.00 sec)
2.9 其他数学函数(不怎么常用)
1、RADIANS(x)
将参数 x
由角度转化为弧度。
mysql> SELECT RADIANS(90),RADIANS(180);
+--------------------+-------------------+
| RADIANS(90) | RADIANS(180) |
+--------------------+-------------------+
| 1.5707963267948966 | 3.141592653589793 |
+--------------------+-------------------+
1 row in set (0.00 sec)
2、DEGREES(x)
将参数 x
由弧度转化为角度。
mysql> SELECT DEGREES(PI()), DEGREES(PI() / 2);
+---------------+-------------------+
| DEGREES(PI()) | DEGREES(PI() / 2) |
+---------------+-------------------+
| 180 | 90 |
+---------------+-------------------+
1 row in set (0.00 sec)
3、SIN(x)
返回 x
正弦,其中 x
为弧度值。
mysql> SELECT SIN(1), ROUND(SIN(PI()));
+--------------------+------------------+
| SIN(1) | ROUND(SIN(PI())) |
+--------------------+------------------+
| 0.8414709848078965 | 0 |
+--------------------+------------------+
1 row in set (0.00 sec)
4、ASIN(x)
返回 x
的反正弦,即正弦为 x
的值。若 x
不在 -1
到 1
的范围之内,则返回 NULL
。
mysql> SELECT ASIN(0.8414709848078965), ASIN(3);
+--------------------------+---------+
| ASIN(0.8414709848078965) | ASIN(3) |
+--------------------------+---------+
| 1 | NULL |
+--------------------------+---------+
1 row in set (0.00 sec)
5、COS(x)
返回 x
的余弦,其中 x
为弧度值。
mysql> SELECT COS(0),COS(PI()),COS(1);
+--------+-----------+--------------------+
| COS(0) | COS(PI()) | COS(1) |
+--------+-----------+--------------------+
| 1 | -1 | 0.5403023058681398 |
+--------+-----------+--------------------+
1 row in set (0.00 sec)
6、ACOS(x)
返回 x
的反余弦,即余弦是 x
的值。若 x
不在 -1~1
的范围之内,则返回 NULL
。
mysql> SELECT ACOS(1),ACOS(0), ROUND(ACOS(0.5403023058681398));
+---------+--------------------+---------------------------------+
| ACOS(1) | ACOS(0) | ROUND(ACOS(0.5403023058681398)) |
+---------+--------------------+---------------------------------+
| 0 | 1.5707963267948966 | 1 |
+---------+--------------------+---------------------------------+
1 row in set (0.00 sec)
7、TAN(x)
返回 x
的正切,其中 x
为给定的弧度值。
mysql> SELECT TAN(0.3), ROUND(TAN(PI()/4));
+---------------------+--------------------+
| TAN(0.3) | ROUND(TAN(PI()/4)) |
+---------------------+--------------------+
| 0.30933624960962325 | 1 |
+---------------------+--------------------+
1 row in set (0.00 sec)
8、ATAN(x)
返回 x
的反正切,即正切为 x
的值。
#由结果可以看到,函数ATAN和TAN互为反函数。
mysql> SELECT ATAN(0.30933624960962325), ATAN(1);
+---------------------------+--------------------+
| ATAN(0.30933624960962325) | ATAN(1) |
+---------------------------+--------------------+
| 0.3 | 0.7853981633974483 |
+---------------------------+--------------------+
1 row in set (0.00 sec)
9、COT(x)
返回 x
的余切。
#由结果可以看到,函数COT和TAN互为倒函数。
mysql> SELECT COT(0.3), 1/TAN(0.3),COT(PI() / 4);
+--------------------+--------------------+--------------------+
| COT(0.3) | 1/TAN(0.3) | COT(PI() / 4) |
+--------------------+--------------------+--------------------+
| 3.2327281437658275 | 3.2327281437658275 | 1.0000000000000002 |
+--------------------+--------------------+--------------------+
1 row in set (0.00 sec)
三、字符串函数
字符串函数主要用来处理数据库中的字符串数据。MySQL中的字符串函数有字符串长度计算函数、字符串合并函数、字符串替换函数、字符串比较函数、查找指定字符串位置函数等。本小节将介绍各种字符串函数的作用和用法。说明:无论是在Java、Python等编程语言中亦或是在 MySQL 数据库中,字符串都是一种常用的数据类型,所以掌握其相关的方法及函数也非常重要。
3.1 计算字符串字符数的函数和字符串长度的函数
CHAR_LENGTH(str)
返回值为字符串 str
所包含的字符个数,一个多字节字符算作一个单字符。【示例3.1】使用CHAR_LENGTH函数计算字符串字符个数,输入语句如下:
mysql> SELECT CHAR_LENGTH('date'), CHAR_LENGTH('amo');
+---------------------+--------------------+
| CHAR_LENGTH('date') | CHAR_LENGTH('amo') |
+---------------------+--------------------+
| 4 | 3 |
+---------------------+--------------------+
1 row in set (0.00 sec)
LENGTH(str)
返回值为字符串的字节长度,使用 utf8
(UNICODE的一种变长字符编码,又称万国码)编码字符集时,一个汉字是3字节,一个数字或字母为1字节。 【示例3.2】使用LENGTH函数计算字符串长度,输入语句如下:
#计算的结果与CHAR_LENGTH相同,因为英文字符的个数和所占的字节相同,一个字符占1字节
mysql> SELECT LENGTH('date'), LENGTH('amo');
+----------------+---------------+
| LENGTH('date') | LENGTH('amo') |
+----------------+---------------+
| 4 | 3 |
+----------------+---------------+
1 row in set (0.00 sec)mysql> SELECT LENGTH('date'), LENGTH('我是');
+----------------+----------------+
| LENGTH('date') | LENGTH('我是') |
+----------------+----------------+
| 4 | 4 |
+----------------+----------------+
1 row in set (0.00 sec)mysql> SELECT CHAR_LENGTH('date'), CHAR_LENGTH('我是');
+---------------------+---------------------+
| CHAR_LENGTH('date') | CHAR_LENGTH('我是') |
+---------------------+---------------------+
| 4 | 2 |
+---------------------+---------------------+
1 row in set (0.00 sec)
3.2 合并字符串函数CONCAT(s1,s2,…)、CONCAT_WS(x,s1,s2,…)
CONCAT(s1,s2,…)
返回结果为连接参数产生的字符串,或许有一个或多个参数。如有任何一个参数为NULL,则返回值为NULL;如果所有参数均为非二进制字符串,则结果为非二进制字符串;如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。
【示例3.3】使用CONCAT函数连接字符串,输入语句如下:
mysql> SELECT CONCAT('My SQL', '8.0'),CONCAT('My',NULL, 'SQL');
+-------------------------+--------------------------+
| CONCAT('My SQL', '8.0') | CONCAT('My',NULL, 'SQL') |
+-------------------------+--------------------------+
| My SQL8.0 | NULL |
+-------------------------+--------------------------+
1 row in set (0.00 sec)
在 CONCAT_WS(x,s1,s2,…)
中,CONCAT_WS
代表 CONCAT With Separator
,是 CONCAT()
的特殊形式。第一个参数 x
是其他参数的分隔符,分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其他参数。如果分隔符为NULL,则结果为NULL。函数会忽略任何分隔符参数后的NULL值。 【示例3.4】使用CONCAT_WS函数连接带分隔符的字符串,输入语句如下:
mysql> SELECT CONCAT_WS('-', '1st','2nd', '3rd'), CONCAT_WS('*', '1st', NULL, '3rd');
+------------------------------------+------------------------------------+
| CONCAT_WS('-', '1st','2nd', '3rd') | CONCAT_WS('*', '1st', NULL, '3rd') |
+------------------------------------+------------------------------------+
| 1st-2nd-3rd | 1st*3rd |
+------------------------------------+------------------------------------+
1 row in set (0.00 sec)
3.3 替换字符串的函数INSERT(s1,x,len,s2)
INSERT(s1,x,len,s2)
函数将字符串 s1
中 x
位置开始、长度为 len
的字符串用字符串 s2
替换。 如果 x
超过字符串长度,则返回值为原始字符串。如果 len
的长度大于其他字符串的长度,则从位置 x
开始替换。若任何一个参数为 NULL
,则返回值为 NULL
。【示例3.5】使用INSERT函数进行字符串替代操作,输入语句如下:
#第二个函数INSERT('Quest', -1, 4, 'What')中起始位置-1超出了字符串长度,直接返回原字符;
SELECT INSERT('Quest', 2, 4, 'What') AS col1,INSERT('Quest', -1, 4, 'What') AS col2,INSERT('Quest', 3, 100, 'Wh') AS col3;
+-------+-------+------+
| col1 | col2 | col3 |
+-------+-------+------+
| QWhat | Quest | QuWh |
+-------+-------+------+
1 row in set (0.00 sec)
3.4 字母大小写转换函数
LOWER (str)
或者 LCASE (str)
可以将字符串 str
中的字母字符全部转换成小写字母。 【示例3.6】使用LOWER函数或者LCASE函数,将字符串中所有字母字符转换为小写,输入语句如下:
mysql> SELECT LOWER('BEAUTIFUL'), LCASE('Well');
+--------------------+---------------+
| LOWER('BEAUTIFUL') | LCASE('Well') |
+--------------------+---------------+
| beautiful | well |
+--------------------+---------------+
1 row in set (0.00 sec)
UPPER(str)
或者 UCASE(str)
可以将字符串 str
中的字母字符全部转换成大写字母。 【示例3.7】使用UPPER函数或者UCASE函数,将字符串中所有字母字符转换为大写,输入语句如下:
mysql> SELECT UPPER('amoxiang'), UCASE('AmoXiang');
+-------------------+-------------------+
| UPPER('amoxiang') | UCASE('AmoXiang') |
+-------------------+-------------------+
| AMOXIANG | AMOXIANG |
+-------------------+-------------------+
1 row in set (0.00 sec)
3.5 获取指定长度的字符串的函数LEFT(s,n)和RIGHT(s,n)
LEFT(s,n)
返回字符串 s
开始的最左边 n
个字符。 【示例3.8】使用LEFT函数返回字符串中左边的字符,输入语句如下:
mysql> SELECT LEFT('football', 5);
+---------------------+
| LEFT('football', 5) |
+---------------------+
| footb |
+---------------------+
1 row in set (0.00 sec)
RIGHT(s,n)
返回字符串 str
最右边的 n
个字符。 【示例3.9】使用RIGHT函数返回字符串中右边的字符,输入语句如下:
mysql> SELECT RIGHT('football', 4);
+----------------------+
| RIGHT('football', 4) |
+----------------------+
| ball |
+----------------------+
1 row in set (0.00 sec)
3.6 填充字符串的函数LPAD(s1,len,s2)和RPAD(s1,len,s2)
LPAD(s1,len,s2)
返回字符串 s1
,其左边由字符串 s2
填补到 len
字符长度。假如 s1
的长度大于 len
,则返回值被缩短至 len
字符。 【示例3.10】使用LPAD函数对字符串进行填充操作,输入语句如下:
mysql> SELECT LPAD('hello',4,'??'), LPAD('hello',10,'??');
+----------------------+-----------------------+
| LPAD('hello',4,'??') | LPAD('hello',10,'??') |
+----------------------+-----------------------+
| hell | ?????hello |
+----------------------+-----------------------+
1 row in set (0.00 sec)
RPAD(s1,len,s2)
返回字符串 sl
,其右边被字符串 s2
填补至 len
字符长度。假如字符串 s1
的长度大于 len
,则返回值被缩短到 len
字符长度。 【示例3.11】使用RPAD函数对字符串进行填充操作,输入语句如下:
mysql> SELECT RPAD('hello',4,'?'), RPAD('hello',10,'?');
+---------------------+----------------------+
| RPAD('hello',4,'?') | RPAD('hello',10,'?') |
+---------------------+----------------------+
| hell | hello????? |
+---------------------+----------------------+
1 row in set (0.00 sec)
3.7 删除空格的函数LTRIM(s)、RTRIM(s)和TRIM(s)
LTRIM(s)
返回字符串 s
,字符串左侧空格字符被删除。【示例3.12】使用LTRIM函数删除字符串左边的空格,输入语句如下:
mysql> SELECT '( book )',CONCAT('(',LTRIM(' book '),')');
+------------+-----------------------------------+
| ( book ) | CONCAT('(',LTRIM(' book '),')') |
+------------+-----------------------------------+
| ( book ) | (book ) |
+------------+-----------------------------------+
1 row in set (0.00 sec)
RTRIM(s)
返回字符串 s
,字符串右侧空格字符被删除。【示例3.13】使用RTRIM函数删除字符串右边的空格,输入语句如下:
mysql> SELECT '( book )',CONCAT('(', RTRIM (' book '),')');
+------------+-------------------------------------+
| ( book ) | CONCAT('(', RTRIM (' book '),')') |
+------------+-------------------------------------+
| ( book ) | ( book) |
+------------+-------------------------------------+
1 row in set (0.00 sec)
TRIM(s)
删除字符串 s
左右两侧的空格。【示例3.14】使用TRIM函数删除字符串两侧的空格,使用语句如下:
mysql> SELECT '( book )',CONCAT('(', TRIM(' book '),')');
+------------+-----------------------------------+
| ( book ) | CONCAT('(', TRIM(' book '),')') |
+------------+-----------------------------------+
| ( book ) | (book) |
+------------+-----------------------------------+
1 row in set (0.00 sec)
3.8 删除指定字符串的函数TRIM(s1 FROM s)
TRIM(s1 FROM s)
删除字符串 s
中两端所有的子字符串 s1
。s1
为可选项,在未指定的情况下,会删除空格。【示例3.15】使用TRIM(s1 FROM s)函数删除字符串两端指定的字符,输入语句如下:
mysql> SELECT TRIM('xy' FROM 'xyxboxyokxxyxy') ;
+----------------------------------+
| TRIM('xy' FROM 'xyxboxyokxxyxy') |
+----------------------------------+
| xboxyokx |
+----------------------------------+
1 row in set (0.00 sec)
3.9 重复生成字符串的函数REPEAT(s,n)
REPEAT(s,n)
返回一个由重复的字符串 s
组成的字符串,字符串 s
的数目等于 n
。若 n<=0
,则返回一个空字符串。若 s
或 n
为 NULL
,则返回 NULL
。【示例3.16】使用REPEAT函数重复生成相同的字符串,输入语句如下:
mysql> SELECT REPEAT('mysql', 3);
+--------------------+
| REPEAT('mysql', 3) |
+--------------------+
| mysqlmysqlmysql |
+--------------------+
1 row in set (0.00 sec)
3.10 空格函数SPACE(n)和替换函数REPLACE(s,s1,s2)
SPACE(n)
返回一个由 n
个空格组成的字符串。【示例3.17】使用SPACE函数生成由空格组成的字符串,输入语句如下:
mysql> SELECT CONCAT('(', SPACE(6), ')' );
+-----------------------------+
| CONCAT('(', SPACE(6), ')' ) |
+-----------------------------+
| ( ) |
+-----------------------------+
1 row in set (0.00 sec)
REPLACE(s,s1,s2)
使用字符串 s2
替代字符串 s
中所有的字符串 s1
。【示例3.18】使用REPLACE函数进行字符串替代操作,输入语句如下:
mysql> SELECT REPLACE('xxx.mysql.com', 'x', 'w');
+------------------------------------+
| REPLACE('xxx.mysql.com', 'x', 'w') |
+------------------------------------+
| www.mysql.com |
+------------------------------------+
1 row in set (0.00 sec)
3.11 比较字符串大小的函数STRCMP(s1,s2)
STRCMP(s1,s2)
比较字符串 s1
与 s2
的大小。若 s1
与 s2
所有的字符均相同,则返回0;若根据当前分类次序,第一个参数小于第二个,则返回-1;其他情况返回1。【示例3.19】使用STRCMP函数比较字符串大小,输入语句如下:
mysql> SELECT STRCMP('txt', 'txt2'),STRCMP('txt2', 'txt'), STRCMP('txt', 'txt');
+-----------------------+-----------------------+----------------------+
| STRCMP('txt', 'txt2') | STRCMP('txt2', 'txt') | STRCMP('txt', 'txt') |
+-----------------------+-----------------------+----------------------+
| -1 | 1 | 0 |
+-----------------------+-----------------------+----------------------+
1 row in set (0.00 sec)
3.12 获取子串的函数SUBSTRING(s,n,len)和MID(s,n,len)
SUBSTRING(s,n,len)
带有 len
参数的格式,从字符串 s
返回一个长度与 len
字符相同的子字符串,起始于位置 n
。也可能对 n
使用一个负值,如果是这种情况,则子字符串的位置起始于字符串结尾的 n
字符,即倒数第 n
个字符,而不是字符串的开头位置。【示例3.20】使用SUBSTRING函数获取指定位置处的子字符串,输入语句如下:
mysql> SELECT SUBSTRING('breakfast',5) AS col1, SUBSTRING('breakfast',5,3) AS col2,SUBSTRING('lunch', -3) AS col3,
SUBSTRING('lunch', -5, 3) AS col4;
+-------+------+------+------+
| col1 | col2 | col3 | col4 |
+-------+------+------+------+
| kfast | kfa | nch | lun |
+-------+------+------+------+
1 row in set (0.00 sec)
MID(s,n,len)
函数与 SUBSTRING(s,n,len)
的作用相同。【示例3.21】使用MID函数获取指定位置处的子字符串,输入语句如下:
mysql> SELECT MID('breakfast',5) as col1, MID('breakfast',5,3) as col2,MID('lunch', -3) as col3,MID('lunch', -5, 3) as col4;
+-------+------+------+------+
| col1 | col2 | col3 | col4 |
+-------+------+------+------+
| kfast | kfa | nch | lun |
+-------+------+------+------+
1 row in set (0.00 sec)
可以看到 MID
和 SUBSTRING
的处理结果是一样的。
提示:如果对len使用的是一个小于1的值,则结果始终为空字符串。
3.13 匹配子串开始位置的函数
LOCATE(str1,str)
、POSITION(str1 IN str)
和 INSTR(str, str1)
3个函数的作用相同,返回子字符串 str1
在字符串 str
中的开始位置。【示例3.22】使用LOCATE、POSITION、INSTR函数,查找字符串中指定子字符串的开始位置,输入语句如下:
mysql> SELECT LOCATE('ball','football'),POSITION('ball'IN 'football'),INSTR ('football', 'ball');
+---------------------------+-------------------------------+----------------------------+
| LOCATE('ball','football') | POSITION('ball'IN 'football') | INSTR ('football', 'ball') |
+---------------------------+-------------------------------+----------------------------+
| 5 | 5 | 5 |
+---------------------------+-------------------------------+----------------------------+
1 row in set (0.00 sec)
3.14 字符串逆序的函数REVERSE(s)
REVERSE(s)
函数将字符串 s
反转,返回的字符串的顺序和 s
字符串顺序相反。【示例3.23】使用REVERSE函数反转字符串,输入语句如下:
mysql> SELECT REVERSE('abc');
+----------------+
| REVERSE('abc') |
+----------------+
| cba |
+----------------+
1 row in set (0.00 sec)
3.15 返回指定位置的字符串的函数
对于 ELT(N,字符串1,字符串2,字符串3,...,字符串N)
函数,若 N=1
,则返回值为字符串1;若 N=2
,则返回值为字符串2;以此类推;若N小于1或大于参数的个数,则返回值为 NULL
。【示例3.24】使用ELT函数返回指定位置字符串,输入语句如下:
mysql> SELECT ELT(3,'1st','2nd','3rd'), ELT(3,'net','os');
+--------------------------+-------------------+
| ELT(3,'1st','2nd','3rd') | ELT(3,'net','os') |
+--------------------------+-------------------+
| 3rd | NULL |
+--------------------------+-------------------+
1 row in set (0.00 sec)
3.16 返回指定字符串位置的函数FIELD(s,s1,s2,…,sn)
FIELD(s,s1,s2,…,sn)
函数返回字符串 s
在列表 s1,s2,…,sn
中第一次出现的位置,在找不到 s
的情况下,返回值为0。如果 s
为NULL,则返回值为0,原因是NULL不能与任何值进行同等比较。【示例3.25】使用FIELD函数返回指定字符串第一次出现的位置,输入语句如下:
mysql> SELECT FIELD('Hi', 'hihi', 'Hey', 'Hi', 'bas') as col1, FIELD('Hi', 'Hey', 'Lo', 'Hilo', 'foo') as col2;
+------+------+
| col1 | col2 |
+------+------+
| 3 | 0 |
+------+------+
1 row in set (0.00 sec)
3.17 返回子串位置的函数FIND_IN_SET(s1,s2)
FIND_IN_SET(s1,s2)
函数返回字符串 s1
在字符串列表 s2
中出现的位置,字符串列表是一个由多个逗号 “,”
分开的字符串组成的列表。如果 s1
不在 s2
中或 s2
为空字符串,则返回值为0。如果任意一个参数为NULL,则返回值为NULL。这个函数在第一个参数包含一个逗号 “,”
的情况下,将无法正常运行。【示例3.26】使用FIND_IN_SET()函数返回子字符串在字符串列表中的位置,输入语句如下:
mysql> SELECT FIND_IN_SET('Hi','hihi,Hey,Hi,bas');
+-------------------------------------+
| FIND_IN_SET('Hi','hihi,Hey,Hi,bas') |
+-------------------------------------+
| 3 |
+-------------------------------------+
1 row in set (0.00 sec)
3.18 选取字符串的函数MAKE_SET(x,s1,s2,…,sn)
MAKE_SET(x,s1,s2,…,sn)
函数按 x
的二进制数从 s1,s2,…,sn
中选取字符串。例如,5的二进制是0101,这个二进制从右往左的第1位和第3位是1,所以选取 s1
和 s3
。s1,s2,...,sn
中的 NULL
值不会被添加到结果中。【示例3.27】使用MAKE_SET函数根据二进制位选取指定字符串,输入语句如下:
mysql> SELECT MAKE_SET(1,'a','b','c') as col1, MAKE_SET(1 | 4,'hello','nice','world') as col2,
MAKE_SET(1 | 4,'hello','nice',NULL,'world') as col3, MAKE_SET(0,'a','b','c') as col4;
+------+-------------+-------+------+
| col1 | col2 | col3 | col4 |
+------+-------------+-------+------+
| a | hello,world | hello | |
+------+-------------+-------+------+
1 row in set (0.00 sec)
四、日期和时间函数
日期和时间函数主要用来处理日期和时间值,一般的日期函数除了使用 DATE
类型的参数外,也可以使用 DATETIME
或者 TIMESTAMP
类型的参数,但会忽略这些值的时间部分。相同地,以 TIME
类型值为参数的函数,可以接受 TIMESTAMP
类型的参数,但会忽略日期部分,许多日期函数可以同时接受数字和字符串类型的两种参数。本小节将介绍各种日期和时间函数的作用和用法。
4.1 获取当前日期的函数和获取当前时间的函数
CURDATE()
和 CURRENT_DATE()
函数的作用相同,将当前日期按照 YYYY-MM-DD
或 YYYYMMDD
格式的值返回,具体格式根据函数用于字符串或是数字的语境而定。【示例4.1】使用日期函数获取系统当前日期,输入语句如下:
# CURDATE() + 0 将当前日期值转换为数值型
mysql> SELECT CURDATE(),CURRENT_DATE(), CURDATE() + 0;
+------------+----------------+---------------+
| CURDATE() | CURRENT_DATE() | CURDATE() + 0 |
+------------+----------------+---------------+
| 2023-01-15 | 2023-01-15 | 20230115 |
+------------+----------------+---------------+
1 row in set (0.00 sec)
CURTIME()
和 CURRENT_TIME()
函数的作用相同,将当前时间以 HH:MM:SS
或 HHMMSS
的格式返回,具体格式根据函数用于字符串或是数字的语境而定。【示例4.2】使用时间函数获取系统当前时间,输入语句如下:
#CURTIME () + 0将当前时间值转换为数值型
mysql> SELECT CURTIME(),CURRENT_TIME(),CURTIME() + 0;
+-----------+----------------+---------------+
| CURTIME() | CURRENT_TIME() | CURTIME() + 0 |
+-----------+----------------+---------------+
| 12:47:13 | 12:47:13 | 124713 |
+-----------+----------------+---------------+
1 row in set (0.00 sec)
4.2 获取当前日期和时间的函数
CURRENT_TIMESTAMP()
、LOCALTIME()
、NOW()
和 SYSDATE()
4个函数的作用相同,均返回当前日期和时间值,格式为 YYYY-MM-DD HH:MM:SS
或 YYYYMMDDHHMMSS
,具体格式根据函数用于字符串或数字的语境而定。【示例4.3】使用日期时间函数获取当前系统日期和时间,输入语句如下:可以看到,4个函数返回的结果是相同的。
mysql> SELECT CURRENT_TIMESTAMP(),LOCALTIME(),NOW(),SYSDATE();
+---------------------+---------------------+---------------------+---------------------+
| CURRENT_TIMESTAMP() | LOCALTIME() | NOW() | SYSDATE() |
+---------------------+---------------------+---------------------+---------------------+
| 2023-01-15 12:51:59 | 2023-01-15 12:51:59 | 2023-01-15 12:51:59 | 2023-01-15 12:51:59 |
+---------------------+---------------------+---------------------+---------------------+
1 row in set (0.00 sec)
4.3 UNIX时间戳函数
UNIX_TIMESTAMP(date)
函数若无参数调用,则返回一个 UNIX
时间戳(即 1970-01-01 00:00:00
GMT之后的秒数)作为无符号整数。其中,GMT(Greenwich Mean Time)为格林尼治标准时间。若用 date
来调用 UNIX_TIMESTAMP()
,它会将参数值以 1970-01-01 00:00:00
(GMT)后的秒数的形式返回。date
可以是一个 DATE字符串、DATETIME字符串、TIMESTAMP
或一个当地时间的 YYMMDD
或 YYYYMMDD
格式的数字。【示例4.4】使用UNIX_TIMESTAMP函数返回UNIX格式的时间戳,输入语句如下:
mysql> SELECT UNIX_TIMESTAMP(), UNIX_TIMESTAMP(NOW()), NOW();
+------------------+-----------------------+---------------------+
| UNIX_TIMESTAMP() | UNIX_TIMESTAMP(NOW()) | NOW() |
+------------------+-----------------------+---------------------+
| 1673758724 | 1673758724 | 2023-01-15 12:58:44 |
+------------------+-----------------------+---------------------+
1 row in set (0.00 sec)
#FROM_UNIXTIME(date)函数把UNIX时间戳转换为普通格式的时间,与UNIX_TIMESTAMP(date)函数互为反函数。
mysql> SELECT FROM_UNIXTIME('1673758724');
+-----------------------------+
| FROM_UNIXTIME('1673758724') |
+-----------------------------+
| 2023-01-15 12:58:44.000000 |
+-----------------------------+
1 row in set (0.00 sec)
4.4 返回UTC日期的函数和返回UTC时间的函数
UTC_DATE()
函数返回当前 UTC(世界标准时间)
日期值,其格式为 YYYY-MM-DD
或 YYYYMMDD
,具体格式取决于函数是否用在字符串或数字语境中。【示例4.5】使用UTC_DATE()函数返回当前UTC日期值,输入语句如下:
mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
+------------+----------------+
| UTC_DATE() | UTC_DATE() + 0 |
+------------+----------------+
| 2023-01-15 | 20230115 |
+------------+----------------+
1 row in set (0.00 sec)
#UTC_TIME()返回当前UTC时间值,其格式为HH:MM:SS或HHMMSS,具体格式取决于函数是否用在字符串或数字语境中
#使用UTC_TIME()函数返回当前UTC时间值,输入语句如下:
mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
+------------+----------------+
| UTC_TIME() | UTC_TIME() + 0 |
+------------+----------------+
| 05:04:42 | 50442 |
+------------+----------------+
1 row in set (0.00 sec)
4.5 获取月份的函数MONTH(date)和MONTHNAME(date)
MONTH(date)
函数返回 date
对应的月份,范围值为 1~12
。【示例4.6】使用MONTH()函数返回指定日期中的月份,输入语句如下:
mysql> SELECT MONTH('2023-01-15');
+---------------------+
| MONTH('2023-01-15') |
+---------------------+
| 1 |
+---------------------+
1 row in set (0.00 sec)
【示例4.7】使用MONTHNAME()函数返回指定日期中月份的名称,输入语句如下:
mysql> SELECT MONTHNAME('2023-01-15');
+-------------------------+
| MONTHNAME('2023-01-15') |
+-------------------------+
| January |
+-------------------------+
1 row in set (0.00 sec)
4.6 获取星期的函数DAYNAME(d)、DAYOFWEEK(d)和WEEKDAY(d)
DAYNAME(d)
函数返回参数 d
对应的工作日的英文名称,例如 Sunday、Monday
等。【示例4.8】使用DAYNAME()函数返回指定日期的工作日名称,输入语句如下:
mysql> SELECT DAYNAME('2023-01-15');
+-----------------------+
| DAYNAME('2023-01-15') |
+-----------------------+
| Sunday |
+-----------------------+
1 row in set (0.00 sec)
DAYOFWEEK(d)
函数返回参数 d
对应的一周中的索引(位置,1表示周日,2表示周一,…,7表示周六)。 【示例4.9】使用DAYOFWEEK()函数返回日期对应的周索引,输入语句如下:
mysql> SELECT DAYOFWEEK('2023-01-15');
+-------------------------+
| DAYOFWEEK('2023-01-15') |
+-------------------------+
| 1 |
+-------------------------+
1 row in set (0.00 sec)
WEEKDAY(d)
返回参数 d
对应的工作日索引:0表示周一,1表示周二,…,6表示周日。 【示例4.10】使用WEEKDAY()函数返回日期对应的工作日索引,输入语句如下:
#WEEKDAY()和DAYOFWEEK()函数都是返回指定日期在某一周内的位置,只是索引编号不同。
mysql> SELECT WEEKDAY('2023-01-15 13:16:00'), WEEKDAY('2023-01-15');
+--------------------------------+-----------------------+
| WEEKDAY('2023-01-15 13:16:00') | WEEKDAY('2023-01-15') |
+--------------------------------+-----------------------+
| 6 | 6 |
+--------------------------------+-----------------------+
1 row in set (0.00 sec)
4.7 获取星期数的函数WEEK(d)和WEEKOFYEAR(d)
WEEK(d)
计算日期 d
是一年中的第几周。WEEK()
的双参数形式允许指定该星期是否起始于周日或周一,以及返回值的范围是否为 0~53
或 1~53
。若 Mode
参数被省略,则使用 default_week_format
系统自变量的值,可参考下表:
【示例4.11】使用WEEK()函数查询指定日期是一年中的第几周,输入语句如下:
mysql> SELECT WEEK('2018-02-20'),WEEK('2018-02-20',0), WEEK('2018-02-20',1);
+--------------------+----------------------+----------------------+
| WEEK('2018-02-20') | WEEK('2018-02-20',0) | WEEK('2018-02-20',1) |
+--------------------+----------------------+----------------------+
| 7 | 7 | 8 |
+--------------------+----------------------+----------------------+
1 row in set (0.00 sec)
WEEKOFYEAR(d)
计算某天位于一年中的第几周,范围是 1~53
,相当于 WEEK(d,3)
。【示例4.12】使用WEEKOFYEAR()查询指定日期是一年中的第几周,输入语句如下:
mysql> SELECT WEEK('2018-01-20',3), WEEKOFYEAR('2018-01-20');
+----------------------+--------------------------+
| WEEK('2018-01-20',3) | WEEKOFYEAR('2018-01-20') |
+----------------------+--------------------------+
| 3 | 3 |
+----------------------+--------------------------+
1 row in set (0.00 sec)
4.8 获取天数的函数DAYOFYEAR(d)和DAYOFMONTH(d)
DAYOFYEAR(d)
函数返回日期d是一年中的第几天,范围是 1~366
。【示例4.13】使用DAYOFYEAR()函数返回指定日期在一年中的位置,输入语句如下:
mysql> SELECT DAYOFYEAR('2018-02-20');
+-------------------------+
| DAYOFYEAR('2018-02-20') |
+-------------------------+
| 51 |
+-------------------------+
1 row in set (0.00 sec)
DAYOFMONTH(d)
函数返回日期d,是一个月中的第几天,范围是 1~31
。【示例4.14】使用DAYOFMONTH()函数返回指定日期在一个月中的位置,输入语句如下:
mysql> SELECT DAYOFMONTH('2023-01-15');
+--------------------------+
| DAYOFMONTH('2023-01-15') |
+--------------------------+
| 15 |
+--------------------------+
1 row in set (0.00 sec)
4.9 获取年份、季度、小时、分钟和秒钟的函数
YEAR(date)
返回日期 date
对应的年份,范围是 1970~2069
。QUARTER(date)
返回日期 date
对应的一年中的季度值,范围是 1~4
。MINUTE(time)
返回 time
对应的分钟数,范围是 0~59
。SECOND(time)
返回 time
对应的秒数,范围是 0~59
。SQL 示例如下:
mysql> SELECT YEAR('18-02-03'),YEAR('96-02-03');
+------------------+------------------+
| YEAR('18-02-03') | YEAR('96-02-03') |
+------------------+------------------+
| 2018 | 1996 |
+------------------+------------------+
1 row in set (0.00 sec)mysql> SELECT QUARTER('18-04-01');
+---------------------+
| QUARTER('18-04-01') |
+---------------------+
| 2 |
+---------------------+
1 row in set (0.00 sec)mysql> SELECT MINUTE('18-02-03 10:10:03');
+-----------------------------+
| MINUTE('18-02-03 10:10:03') |
+-----------------------------+
| 10 |
+-----------------------------+
1 row in set (0.00 sec)mysql> SELECT SECOND('10:05:03');
+--------------------+
| SECOND('10:05:03') |
+--------------------+
| 3 |
+--------------------+
1 row in set (0.00 sec)
4.10 获取日期的指定值的函数EXTRACT(type FROM date)
EXTRACT(type FROM date)
函数所使用的时间间隔类型说明符与 DATE_ADD()
或 DATE_SUB()
使用的相同,但它从日期中提取一部分,而不是执行日期运算。
mysql> SELECT EXTRACT(YEAR FROM '2018-07-02') AS col1, EXTRACT(YEAR_MONTH FROM '2018-07-12 01:02:03') AS col2,
EXTRACT(DAY_MINUTE FROM '2018-07-12 01:02:03') AS col3;
+------+--------+--------+
| col1 | col2 | col3 |
+------+--------+--------+
| 2018 | 201807 | 120102 |
+------+--------+--------+
1 row in set (0.00 sec)
4.11 时间和秒钟转换的函数
TIME_TO_SEC(time)
返回已转化为秒的 time
参数。转换公式为:小时×3600+分钟×60+秒
。
mysql> SELECT TIME_TO_SEC('23:23:00');
+-------------------------+
| TIME_TO_SEC('23:23:00') |
+-------------------------+
| 84180 |
+-------------------------+
1 row in set (0.00 sec)
SEC_TO_TIME(seconds)
函数返回被转化为小时、分钟和秒数的 seconds
参数值,其格式为 HH:MM:SS
或 HHMMSS
,具体格式根据该函数用在字符串或数字的语境而定。
mysql> SELECT SEC_TO_TIME(2345),SEC_TO_TIME(2345)+0, TIME_TO_SEC('23:23:00'), SEC_TO_TIME(84180);
+-------------------+---------------------+-------------------------+--------------------+
| SEC_TO_TIME(2345) | SEC_TO_TIME(2345)+0 | TIME_TO_SEC('23:23:00') | SEC_TO_TIME(84180) |
+-------------------+---------------------+-------------------------+--------------------+
| 00:39:05 | 3905 | 84180 | 23:23:00 |
+-------------------+---------------------+-------------------------+--------------------+
1 row in set (0.00 sec)
4.12 计算日期和时间的函数
计算日期和时间的函数有 DATE_ADD()
、ADDDATE()
、DATE_SUB()
、SUBDATE()
、ADDTIME()
、SUBTIME()
和 DATE_DIFF()
。在 DATE_ADD(date,INTERVAL expr type)
和 DATE_SUB(date,INTERVAL expr type)
中,参数 date
是一个 DATETIME
或 DATE
值,用来指定起始时间。expr
是一个表达式,用来指定从起始日期添加或减去的时间间隔值。对于负值的时间间隔,expr
以一个负号 -
开头。type
为关键词,指示了表达式被解释的方式。下表显示了 type
和 expr
参数的关系:
SQL 语句示例如下:
mysql> SELECT DATE_ADD('2010-12-31 23:59:59', INTERVAL 1 SECOND) AS col1,
ADDDATE('2010-12-3123:59:59', INTERVAL 1 SECOND) AS col2, DATE_ADD('2010-12-31 23:59:59', INTERVAL '1:1' MINUTE_SECOND)AS col3;
+---------------------+------+---------------------+
| col1 | col2 | col3 |
+---------------------+------+---------------------+
| 2011-01-01 00:00:00 | NULL | 2011-01-01 00:01:00 |
+---------------------+------+---------------------+
1 row in set, 1 warning (0.00 sec)
DATE_SUB(date,INTERVAL expr type)
或者 SUBDATE(date,INTERVAL expr type)
两个函数的作用相同,执行日期的减运算。使用 DATE_SUB
和 SUBDATE
函数执行日期的减操作,输入语句如下:
#DATE_ADD和DATE_SUB在指定修改的时间段时,也可以指定负值,负值代表相减,即返回以前的日期和时间。
mysql> SELECT DATE_SUB('2011-01-02', INTERVAL 31 DAY) AS col1,
SUBDATE('2011-01-02', INTERVAL 31 DAY) AS col2, DATE_SUB('2011-01-01 00:01:00',INTERVAL '0 0:1:1' DAY_SECOND) AS col3;
+------------+------------+---------------------+
| col1 | col2 | col3 |
+------------+------------+---------------------+
| 2010-12-02 | 2010-12-02 | 2010-12-31 23:59:59 |
+------------+------------+---------------------+
1 row in set (0.00 sec)
ADDTIME(date,expr)
函数将 expr
值添加到 date
,并返回修改后的值,date
是一个日期或者日期时间表达式,而 expr
是一个时间表达式。使用 ADDTIME
进行时间的加操作,输入语句如下:
mysql> SELECT ADDTIME('2000-12-31 23:59:59','1:1:1'), ADDTIME('02:02:02', '02:00:00');
+----------------------------------------+---------------------------------+
| ADDTIME('2000-12-31 23:59:59','1:1:1') | ADDTIME('02:02:02', '02:00:00') |
+----------------------------------------+---------------------------------+
| 2001-01-01 01:01:00 | 04:02:02 |
+----------------------------------------+---------------------------------+
1 row in set (0.00 sec)
SUBTIME(date,expr)
函数将 date
减去 expr
值,并返回修改后的值。其中,date
是一个日期或者日期时间表达式,而 expr
是一个时间表达式。使用 SUBTIME()
函数执行时间的减操作,输入语句如下:
mysql> SELECT SUBTIME('2000-12-31 23:59:59','1:1:1'), SUBTIME('02:02:02','02:00:00');
+----------------------------------------+--------------------------------+
| SUBTIME('2000-12-31 23:59:59','1:1:1') | SUBTIME('02:02:02','02:00:00') |
+----------------------------------------+--------------------------------+
| 2000-12-31 22:58:58 | 00:02:02 |
+----------------------------------------+--------------------------------+
1 row in set (0.00 sec)
DATEDIFF(date1,date2)
函数返回起始时间 date1
和结束时间 date2
之间的天数。date1
和 date2
为日期或日期时间表达式,计算中只用到这些值的日期部分。使用 DATEDIFF()
函数计算两个日期之间的间隔天数,输入语句如下:
mysql> SELECT DATEDIFF('2010-12-31 23:59:59','2010-12-30') AS col1, DATEDIFF('2010-11-30 23:59:59','2010-12-31') AS col2;
+------+------+
| col1 | col2 |
+------+------+
| 1 | -31 |
+------+------+
1 row in set (0.00 sec)
4.13 将日期和时间格式化的函数
DATE_FORMAT(date,format)
根据 format
指定的格式显示 date
值。主要 format
格式如下表所示:
使用 DATE_FORMAT()
函数格式化输出日期和时间值,输入语句如下:
mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y') AS col1,
DATE_FORMAT('1997-10-04 22:23:00','%D %y %a %d %m %b %j') AS col2;
+-----------------------+--------------------------+
| col1 | col2 |
+-----------------------+--------------------------+
| Saturday October 1997 | 4th 97 Sat 04 10 Oct 277 |
+-----------------------+--------------------------+
1 row in set (0.00 sec)mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s') AS col3, DATE_FORMAT('1999-01-01', '%X %V') AS col4;
+----------+---------+
| col3 | col4 |
+----------+---------+
| 22:23:00 | 1998 52 |
+----------+---------+
1 row in set (0.00 sec)
TIME_FORMAT(time,format)
根据表达式 format
的要求显示时间 time
。表达式 format
指定了显示的格式。因为 TIME_FORMAT(time,format)
只处理时间,所以 format
只使用时间格式。使用 TIME_FORMAT()
函数格式化输入的时间值,输入语句如下:
mysql> SELECT TIME_FORMAT('16:00:00', '%H %k %h %I %l');
+-------------------------------------------+
| TIME_FORMAT('16:00:00', '%H %k %h %I %l') |
+-------------------------------------------+
| 16 16 04 04 4 |
+-------------------------------------------+
1 row in set (0.00 sec)
GET_FORMAT(val_type, format_type)
返回日期时间字符串的显示格式,val_type
表示日期数据类型,包括 DATE、DATETIME和TIME;format_type
表示格式化显示类型,包括 EUR、INTERVAL、ISO、JIS、USA。GET_FORMAT
根据两个值类型组合返回的字符串显示格式如下表所示:
使用 GET_FORMAT()
函数显示不同格式化类型下的格式字符串,输入语句如下:
mysql> SELECT GET_FORMAT(DATE,'EUR'), GET_FORMAT(DATE,'USA');
+------------------------+------------------------+
| GET_FORMAT(DATE,'EUR') | GET_FORMAT(DATE,'USA') |
+------------------------+------------------------+
| %d.%m.%Y | %m.%d.%Y |
+------------------------+------------------------+
1 row in set (0.00 sec)
在 DATE_FORMAT()
函数中,使用 GET_FORMAT
函数返回的格式字符串来显示指定的日期值,输入语句如下:
mysql> SELECT DATE_FORMAT('2000-10-05 22:23:00', GET_FORMAT(DATE,'USA') );
+-------------------------------------------------------------+
| DATE_FORMAT('2000-10-05 22:23:00', GET_FORMAT(DATE,'USA') ) |
+-------------------------------------------------------------+
| 10.05.2000 |
+-------------------------------------------------------------+
1 row in set (0.00 sec)
至此今天的学习就到此结束了,笔者在这里声明,笔者写文章只是为了学习交流,以及让更多学习数据库的读者少走一些弯路,节省时间,并不用做其他用途,如有侵权,联系博主删除即可。感谢您阅读本篇博文,希望本文能成为您编程路上的领航者。祝您阅读愉快!
好书不厌读百回,熟读课思子自知。而我想要成为全场最靓的仔,就必须坚持通过学习来获取更多知识,用知识改变命运,用博客见证成长,用行动证明我在努力。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请点赞
、评论
、收藏
一键三连哦!听说点赞的人运气不会太差,每一天都会元气满满呦!如果实在要白嫖的话,那祝你开心每一天,欢迎常来我博客看看。
编码不易,大家的支持就是我坚持下去的动力。点赞后不要忘了关注
我哦!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.exyb.cn/news/show-4499686.html
如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!
基于ssm的家政平台
摘要 计算机网络如果结合使用信息管理系统,能够提高管理员管理的效率,改善服务质量。优秀的家政平台能够更有效管理用户预约家政服务业务规范,帮助管理者更加有效管理用户预约家政服务,可以帮助提高克服人工管理带来的错误等不利…...

vue时钟组件_一个简单的vue时钟组件
vue时钟组件_一个简单的vue时钟组件 关键的 less 代码 <style lang"less" scoped> angle: 30deg;/* 定义时钟数组 */timeList: 1,2,3,4,5,6,7,8,9,10,11,12;each(timeList, {.hour:nth-of-type({value}) {transform: rotatez(angle * (value - 1));> span …...

二叉树结点的计算
二叉树结点的计算 二叉树的第 i 层上至多有 2^(i-1) 个结点 (i > 1)一个二叉树的层数为k,且结点总数是(2^k) -1 ,则它就是满二叉树; 深度为 k 的二叉树至多有 (2^k) -1 个结点( k > 1)对任意的一颗二叉树 Tree,若叶子结点数…...

西安航空学院计算机学院王晓银,【程序设计论文】谈应用型C语言程序设计教学改革(共3860字)...
摘要:应用型本科院校应为地方经济建设培养和提供实践技能型、创新型人才,加强学生的实践动手能力。针对C语言课程教学存在的问题及学生遇到的困难,提出系统性认识C程序基本结构、启发式教学、案例分析教学+…...

微信小程序前端+Django框架(Python)后端配置
前端发送后端信息代码 wx.request({url: http://127.0.0.1:8000/api/1,data: {name: res.userInfo.nickName,country: res.userInfo.country,province: res.userInfo.province},method: POST,success: (result) > {console.log(result);}, })后端接收代码 def login(reque…...

Java面试题之线程池应用及原理
目录一、线程是不是越多越好二、线程池API1、接口定义和实现类2、方法定义3、ThreadPoolExecutor构造器参数详解4、Executors工具类三、线程池原理1、线程池组成2、线程池中的概念3、线程池任务执行过程四、如何确定合适的线程数量一、线程是不是越多越好 线程在java中是一个对…...

MLR:输入两个向量,得出两个向量之间的相关度—Jason niu
import numpy as np from astropy.units import Ybarn import math from statsmodels.graphics.tukeyplot import resultsdef computeCorrelation(X, Y): xBar np.mean(X) yBar np.mean(Y)SSR 0 varX 0varY 0for i in range(0 , len(X)):diffXXBar X[i] - xBar...

2022-2028全球及中国生活污水处理厂行业研究及十四五规划分析报告
2021年全球生活污水处理厂市场规模大约为 亿元(人民币),预计2028年将达到 亿元,2022-2028期间年复合增长率(CAGR)为 %。未来几年,本行业具有很大不确定性,本文的2022-2028年的预测数…...

线程池中的阻塞队列选择
这是一个十分严重的问题...
Win10 安装LoadRunner11
由于以用户或者管理员身份执行setup.exe都不能正常安装,如下截图是异常信息。尝试了网上很多修改本地组策略的方法,还是不行,最后只能通过DOS命令来执行setup.exe。(一)安装LoadRunner软件1.打开管理员命令提示符2.DOS命令执行setup.exe3.弹出…...

计算机组成原理易错知识点总结
1. 区分单译码,双译码 RAM的译码方式分为单译码和双译码 l方法1:单译码¡被选单元由字线直接选定;¡适用容量较小的存储芯片。l方法2:双译码被选单元由X、Y两个方向的地址决定 若单译码方式的地址输入线为6,则…...

三星android+p+rom包,番茄花园ROM|三星S20ROM|三星S10ROM|三星S9ROM|三星S8ROM|三星Note20ROM|三星Note10+ROM|三星Note9ROM|三星Not
三星 Galaxy S10 5G SM-G977N v22 UE3适合机型:三星 Galaxy S10 5G SM-G977NAndroid版本:11ROM大小:卡刷3.05G发布日期:2021-05-27ROM特征:安卓11,丰富的自定义选项更多介绍和截图百度下载 百度密码&#x…...

html5打开页面直接取纬度,html5获取不了经度和纬度
点击这个按钮,获得您的位置:试一下var xdocument.getElementById("demo");function getLocation(){if (navigator.geolocation){navigator.geolocation.getCurrentPosition(showPosition,showError);}else{x.innerHTML"Geolocation is no…...

华为电脑c语言总是错误,华为C语言面试题
《华为C语言面试题》由会员分享,可在线阅读,更多相关《华为C语言面试题(106页珍藏版)》请在人人文库网上搜索。1、c语言面对面考试汉语面对面考试艾迪定理1,局部变量是否可以与全局变量同名?答:是的,部分切…...

GRACE卫星介绍与解密数据下载
1 简介 1.1 基本信息 GRACE ,Gravity Recovery and Climate Experiment,由 NASA 和德国宇航中心(DLR)联合研制,于 2002 年 3 月 17 日在发射。发射 时其预计寿命为 5 年,一直超期服役到2017年坠毁。后继卫…...

梯度下降算法、随机梯度下降算法、动量随机梯度下降算法、AdaGrad算法、RMSProp算法、Adam算法详细介绍及其原理详解
文章目录前言一、回归拟合问题二、损失函数三、梯度下降算法四、随机梯度下降算法五、动量随机梯度下降算法六、AdaGrad算法七、RMSProp算法八、Adam算法总结前言 本篇博文详细介绍了关于梯度下降算法的所有相关知识,具体包括:回归拟合问题、损失函数、梯…...

Echarts实现自定义图标——风向图
上图用了两种模式表示风向图,第一种是自定义系列,第二种使用了折线图,给折线图添加自定义图标。 两者的区别在于给options.series设置不同的type值,如下图: 那么我们来一步步实现代码,先创建一个HTML文件&…...

我的架构世界(架构设计)
我的架构世界 有些同学会问,我又不是架构师学架构有什么用?其实,架构可以说是无处不在,每个技术人甚至每个人都应该懂一些架构,为什么呢?所谓的架构其实是一种思维方式,是整体与部分之间的关系…...

分布式存储从FastDFS切换到Minio
什么是Minio 基于官网的介绍如下:MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。 从官网的介绍可以看出Minio是一款和FastDFS类似的工具,分布式存储系统。目前在使…...

蓝牙4.0
问:什么是蓝牙通信? 答:蓝牙通讯最初设计初衷是方便移动电话(手机)与配件之间进行低成本、低功耗无线通信连接,现在已经成为IEEE802.15标准,得到全球上万家厂商支持。问:如果从事蓝…...

【渝粤题库】陕西师范大学201771 中国古代文学(一) 作业
《中国古代文学(一)》作业 一、单选题(共30小题,每题2分,共60分) 1、先秦以“笔法”、“微言大义”著称于世的史书是( ) A《尚书》 B《国语》 C《春秋》 D《战国策》 2、汉代“四家诗…...

联想手机android系统耗电,联想 K900 Android 4.2 手机续航能力实测
以往的评测中,我们总会提到手机的续航能力,但在智能机大发展之后,这一方面的测评渐渐就减少了,一方面是因为现在的手机基本上都是一天待机,另一方面也因为电池技术并未根本性突破。虽然人们渐渐接受了这一残酷的事实&a…...

装了这几个IDEA插件,基本上一站式开发了
前言 前几天有社区小伙伴私聊我,问我都用哪些IDEA插件,我的IDEA的主题看起来不错。 作为一个开源作者,每周要code大量的代码,提升日常工作效率是我一直追求的,在众多的IDEA插件中,我独钟爱这几款。这期就…...

高级网络应用复习——TCP与UDP,ACL列表, 防火墙,NAT复习与实验(带命令)
作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页 目录 前言 一.知识点总结 1.传输层的协议 (1)TCP 和…...

磁盘管理和搭建日志服务器
文章目录磁盘容量检查磁盘分区,格式,永久挂载1P1E6L(一主一扩六逻辑)2P1E4L(两主一扩四逻辑)3P1E1Lswap分区的两种建立方式现有磁盘建立添加新磁盘建立方式搭建日志服务器磁盘容量检查 用df命令查看磁盘容量…...
蓝牙之二十一-蓝牙免弹窗配对
这篇文章的缘由来自于一个需求,就是将手机和手机的配对方式变成,变成手机的和蓝牙音箱的配对方式一样,也就是将一部手机的角色变成和蓝牙音箱一样。 就拿前一篇博文一幅图来说。可以看到pc,手机,蓝牙音箱的图标是不同…...

华为ME909S-821在Hi3559AV100平台上NDIS拨号指令流程
华为ME909S-821 4G全网通无线通信模块,4G无线数据卡。 模块图片 Hi3559AV100驱动网络驱动配置 CONFIG_USB_SERIALy CONFIG_USB_SERIAL_OPTIONy CONFIG_USB_SERIAL_WWANy CONFIG_USB_USBNETy CONFIG_NETDEVICESy CONFIG_USB_NET_CDCETHERy 驱动打印 ~ # …...

2005年linux手机系统,三系统五大平台 05年22款智能手机横评
不知道有多少朋友还记得我们中关村在线手机频道于今年初推出的《巅峰对决 2004年14款智能手机横向评测》这个大型专题。时间过得很快,转眼间,又一个365天飞逝而过,也到了我们为2005年智能手机进行点评的时刻。记得去年的这个时候,…...

2022-2028全球过氧化氢蒸汽消毒设备行业调研及趋势分析报告
据恒州诚思调研统计,2021年全球过氧化氢蒸汽消毒设备市场规模约 亿元,2017-2021年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2028年市场规模将接近 亿元,未来六年CAGR为 %。 本文调研和分析全球过氧化…...

Git详解之五:分布式Git
原文:《Pro Git》 为了便于项目中的所有开发者分享代码,我们准备好了一台服务器存放远程 Git 仓库。经过前面几章的学习,我们已经学会了一些基本的本地工作流程中所需用到的命令。接下来,我们要学习下如何利用 Git 来组织和完成分…...

unity(登录注册用手机号短信验证)
短信验证 1、短信验证我是通过mob的SMSSDK实现的(free) 官网下载:http://www.mob.com/wiki/detailed?wikiSMSSDK_for_Unity3D&id23 2、在mob上注册一个账号,创建应用获得key和secret 替换案例中demo中的key和secret&#x…...

全球与中国吸油产品市场深度研究分析报告
【报告篇幅】:104 【报告图表数】:150 【报告出版时间】:2022年1月 报告摘要 2021年全球吸油产品市场销售额达到了 亿美元,预计2028年将达到 亿美元,年复合增长率(CAGR)为 %(202…...

JVM学习之垃圾回收和垃圾回收器
目录 背景 概述 垃圾定义 为何需要GC 早期垃圾回收 Java的垃圾回收机制 相关算法 标记阶段:引用计数算法 标记阶段:可达性分析算法 对象的finalization机制 使用MAT进行GC Roots溯源 清除阶段:标记-清除算法 清除阶段࿱…...

Highchart 改编风力风向图
基于highchart修改而成的风力风向图 1.替换highchart.js drawpoints方法,替换内容如下: drawPoints: function() {var a, b this.points,c this.chart,d, e, f, g, h, i, j, k;d this.options.marker;var l this.pointAttr[""],m,n this.…...

google map 看经度和纬度
首先打开Google地图,在上面寻找一个地址,然后上下左右移动地图,让这个地址正好处于地图的正中心位置,当您想寻找坐标位置已经处于地图的中心位置的时候,拷贝并粘贴以下代码到你的浏览器地址栏: javascript:…...

java中常用难区分点
程序&进程&线程 程序:是为完成特定任务,用某种语言编写的一组指令集合。即指一段静态的代码。 进程:在执行的程序,从Windows角度讲,进程是含有内存和资源并安置线程的地方。 线程:进程可进一步细…...

linux内存管理页帧管理
linux页帧管理采用伙伴系统算法,与bootmem相比有更快的分配速度,能够快速打找到空闲内存;有效的解决外部碎片。 页帧的处理代码主要在:mm/page_alloc.c中 I.主要数据结构 i.页描述符struct page 内存管理的核心是页帧管理&#x…...
如何写博客
Markdown学习 标题 一级标题:一个井号加空格#; 二级标题:##; 。。。。。。 最多六级标题 字体 粗体:两边都加两个星号** 斜体:两边都加一个星号* 引用 格式:用大于号加空格> https…...

kafka安装java,kafka安装,管理,以及常见问题的解决【如:服务端是ok的,java客户端却始终调不通】...
安装步骤:下载 http://kafka.apache.org/downloads.html解压tar -zxvf kafka_2.10-0.8.1.1.tgzcd kafka_2.10-0.8.1.1启动服务: 首先启动zookeeper服务bin/zookeeper-server-start.sh config/zookeeper.properties &启动Kafkabin/kafka-server-…...

市场调研报告-全球与中国工业废水处理化学品市场现状及未来发展趋势
根据QYR(恒州博智)的统计及预测,2021年全球工业废水处理化学品市场销售额达到了 亿美元,预计2028年将达到 亿美元,年复合增长率(CAGR)为 %(2022-2028)。地区层面来看&…...

java 判断手机还是电脑_java web判断手机还是pc机访问
String userAgentrequest.getHeader("user-agent");if(userAgent! null ){userAgent userAgent.toUpperCase();}if (userAgent.indexOf("NOKI") > -1 || // Nokia phones and emulatorsuserAgent.indexOf("ERIC") > -1 || // Ericsson W...

leetcode122 买卖股票的最佳时机II
题目 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 示…...

作为一个Android程序员,我的头条面试经历分享,技术详细介绍
一、自我介绍 应该算是起点比较高吧!985大学毕业后面一直在国外读研。之前准备面试微软但是可能经验不够,没有通过。经过朋友介绍我准备回国,积累一些开发经验。于是我面试了国内大厂BATJ,还有一些其他比较知名的公司,…...

sex在c语言中,2003年4月全国高等教育自学考试计算机软件基础(一)试题
}printf (“x%d,y%d,z%d”,x,y,z);}A.x4,y4,z1 B.x5,y4,z1C.x5,y4,z2 D.x5,y5,z119.C语言中,下列定…...

j2me游戏开发之手机键值
1.机型:三菱M350/M750 键 键值 对应16进制 左右软键 无定义 - OK键 -6 FA 上键 -1 FF 下键 -2 FE 左键 -3 FD 右键 -4 FC 拨号 -5 FB2.机型&…...

SpringBoot整合FastDFS文件上传出现java.net.SocketTimeoutException: Read timed out异常信息
不止是FastDFS文件上传,其他的分布式文件上传或普通文件上传,出现这个问题无非两个原因: 1、连接不到服务器 2、到达了连接服务器的超时时间 先排除是不是连接不上tracker的可能。 先传一个比较小的文件,如果小文件可以上传成功…...

多普达A6288(HTC G3)手机获取root权限以及删除系统自带软件方法
经本人测试验证,完全有效!希望能给广大的“爱折腾”的朋友们一个参考! A.不建议刷机,毕竟是行货嘛,嘿嘿。 B.使用软件获取root权限。随着android系统版本越来越高,软件也越来越丰富!这里只说明如…...

植物大战僵尸:学会使用人造指针
通过向游戏中注入一段特殊的汇编代码,实现自动获取动态地址,省略找基址的麻烦。该方法适用于游戏基址层数过多无法直接获取到基址,游戏根本无法找到基址。 1.打开CE工具并附加游戏进程,首先通过遍历的方式找到阳光的动态地址&…...

全球与中国无菌润滑凝胶市场现状及未来发展趋势(2022)
根据QYR(恒州博智)的统计及预测,2021年全球无菌润滑凝胶市场销售额达到了 亿美元,预计2028年将达到 亿美元,年复合增长率(CAGR)为 %(2022-2028)。地区层面来看࿰…...

量子计算机线路和算法,量子计算机_量子算法和物理实现.pdf
/ 年第 卷第 期CN431258TP- 计算机工程与科学 2012 34 &#x…...

Vue v2.4中新增的$attrs及$listeners属性使用教程
前言 多级组件嵌套需要传递数据时,通常使用的方法是通过vuex。如果仅仅是传递数据,而不做中间处理,使用 vuex 处理,未免有点杀鸡用牛刀。Vue 2.4 版本提供了另一种方法,使用 v-bind”$attrs”, 将父组件中不被认为 pr…...

2022-2028全球过氧化氢蒸汽灭菌系统(VHP灭菌系统)行业调研及趋势分析报告
据恒州诚思调研统计,2021年全球过氧化氢蒸汽灭菌系统(VHP灭菌系统)市场规模约 亿元,2017-2021年年复合增长率CAGR约为%,预计未来将持续保持平稳增长的态势,到2028年市场规模将接近 亿元,未来六年…...

The Clock for Mac v4.5.1 菜单栏日历/世界时钟
The Clock 是一款精美的菜单栏世界时间应用。可以设置时区偏移,日出和日落,昨天/今天等等。您可以调整颜色主题、自定义菜单栏时间样式等等 The Clock for Mac v4.5.1 菜单栏日历/世界时钟...

蓝牙耳机打电话流程hci.log解析
转载于https://www.jianshu.com/p/05cf5a8e8453 首先 通过工具打开btsnoop_hci.log文件 具体工具可自行搜素 我用的是这一款Frontline Protocol Analysis System Frontline Protocol Analysis System下载地址 关于Headset信息操作部分可以直接看Hands-Free 先简述一下蓝牙接…...

通过浏览器geolocation属性获取经度和纬度(1)
网页获取用户位置信息的办法1 调用百度地图的地图标注功能,通过百度地图API获取对应的经度和纬度进而获取地区信息 优点是比较准确,缺点是需要用户自己选择位置2 通过H5 geolocation属性获取经度和纬度,优点是用户只需要点击允许获取即可&…...

Tomcat漏洞总结复现
目录简介Tomcat目录结构及介绍CVE-2017-12615漏洞描述漏洞原理影响范围复现过程修复参考CVE-2020-1938漏洞描述漏洞原理影响范围复现过程修复参考CVE-2019-0232漏洞描述漏洞原理影响范围复现过程修复参考Tomcat8弱口令war包部署漏洞描述影响范围复现过程修复简介 Tomcat是Apach…...

第一天初识HTML
文章目录一、什么是web前端?(C/S、B/S)二、HTML介绍2.1、什么是HTML?2.2 、HTML的优点三、环境配置和浏览器说明3.1、 环境配置(建议使用sublim Text,操作方便易上手)3.2、HTML语法3.3、网页的分…...

华为手机信息不弹屏了为什么_华为手机短信不提醒如何解决?四种方法来帮你!...
华为手机短信提醒设置方法:1)检查当前设置的默认短信应用是哪个应用。①点击桌面“设置”图标。②找到“应用程序管理”。③选择“默认应用设置”。④选择“信息”。⑤可以看到当前正在使用的默认短信应用名称。如果使用的是第三方短信应用,请将“信息”…...

MIKE 21 教程 2.3 水动力模块教学:求解方程与参数设置(Solution Technique),水深校正设置(Depth Correction)
上一节讲解了水动力模块的基本设置:网格导入,时间步长设置与模块选择 MIKE 21 教程 2.2 Domain, Time, Module Selection设置教学 目录 1 Solution Technique 求解技术 1.1 主时间步长与模块时间步长的说明 1.2 CFL值的说明 2 Depth Correction 深…...
无连线的Linux——蓝牙的基础
Linux Without Wires The Basics of Bluetooth 蓝牙技术用于短距离(1米至100米)的通信。 它是最广泛的无线技术,根据功率和通信范围分为多个类别蓝牙是基于分组的协议,并具有主从结构。 它工作在2400MHz和2483.5MHz频率范围之间&a…...

音频相关的基本知识
最近的项目需要和音频打交道,所以网上搜集了一些音频相关的基本知识,整理如下 自然界中的声音非常复杂,波形极其复杂,通常我们采用脉冲编码码调制编码,即PCM编码。PCM编码通过抽样、量化、编码三个步骤将连续变化的模拟…...

ASR相关基础1-特征提取
在进行ASR项目时,启动和训练项目后,在进行源码阅读和后期优化来说,深入理解概念,并进行实践是最为重要的。 在此强化一下概念理解,记录一下学习过程。 我们要解决的首先问题是 声音转化波-数字信息问题。 我们获取的…...

如何把X264输出的INFO信息保存到文件
如何把X264输出的INFO信息保存到文件原作者博客地址:http://blog.yikuyiku.com/?tag%E8%A7%86%E9%A2%91%E7%BC%96%E7%A0%81x264的信息是往STDERR输出的,因此如下另存到文件: 1mencoder-nosound-ovc x264-x264encopts bitrate475:psnr-of avi…...

(转)如何基于FFMPEG和SDL写一个少于1000行代码的视频播放器
原文地址:http://www.dranger.com/ffmpeg/ FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。这使得多媒体应用程序变得容易编写。它是一个简单的&#x…...

如何基于FFMPEG和SDL的视频播放器
转自:http://xinaction.iteye.com/blog/1172843 FFMPEG是一个很好的库,可以用来创建视频应用或者生成特定的工具。FFMPEG几乎为你把所有的繁重工作都做了,比如解码、编码、复用和解复用。这使得多媒体应用程序变得容易编写。它是一个简单的&…...

ffmpeg教程和流媒体参考地址
了解更多IOS底层原理知识,关注腾讯课堂八点钟学院IOS高级开发 IOS学习交流群 431449751; 流媒体参考地址:http://blog.csdn.net/cffishappy/article/category/883975 转:http://blog.sina.com.cn/s/blog_51396f890100nd91.html …...

【基础篇】4 # 链表(上):如何实现LRU缓存淘汰算法?
说明 【数据结构与算法之美】专栏学习笔记 链表结构 数组需要一块连续的内存空间来存储,对内存的要求比较高, 而链表并不需要一块连续的内存空间,它通过指针将一组零散的内存块串联起来使用。 结点:指的是内存块后继指针 next…...
FIR滤波器的加窗是什么
窗函数法是一种设计FIR滤波器的方法,FIR全称为Finite impulse response,即有限冲激响应滤波器。 通带为的理想低通滤波器的系统函数为 反变换求它的冲激响应为 可以看出,这是一个sinc函数 可以看出,的冲激响应在时域上是无限长的…...

python滤波器有哪些_python实现滤波器
在使用Python进行信号处理过程中,利用 scipy.signal.filtfilt()可以快速帮助实现信号的滤波。1.函数的介绍(1).滤波函数scipy.signal.filtfilt(b, a, x, axis-1, padtype‘odd’, padlenNone, method‘pad’, irlenNone)输入参数:b: 滤波器的分子系数向量…...

Pytorch优化器全总结(四)常用优化器性能对比 含代码
目录 写在前面 一、优化器介绍 1.SGDMomentum 2.Adagrad 3.Adadelta 4.RMSprop 5.Adam 6.Adamax 7.AdaW 8.L-BFGS 二、优化器对比 优化器系列文章列表 Pytorch优化器全总结(一)SGD、ASGD、Rprop、Adagrad Pytorch优化器全总结(二…...

小程序 服务器api,小程序服务api接口域名报错
yii\base\InvalidValueException: this domain is not config in store service, you must config it in admin store config in /www/wwwroot/www.zhouka.com/vendor/fancyecommerce/fecshop/services/Store.php:292Stack trace:#0 /www/wwwroot/www.zhouka.com/addons/fecma...

YII 小模块功能
//1,使用updateCounters()来更新计数器字段。 Book::model()->updateCounters(array(download_count>1),:idid,array(:id>$id));//2,使用sendFile()来下载文件。 $type LFilter::checkString($_GET[t]); $dataProvider Book::model()->findByPk($id);…...

折半查找算法[二分查找法]算法的实现和解决整数溢出问题~
算法实现的要求: 折半查找法又称为二分查找法,这种方法对待查找的列表有两个要求: 1:必须采用顺序存储结构 2:必须按关键字大小有序排列算法思想: 将表中间位置记录的关键字与查找关键字进行比较&#x…...

YII框架数据库表前缀的处理
以表名dpp_goods为例 1.protected\config\main.php charset > utf8,后,增加 tablePrefix > dpp_, 2.对应的模型protected\models\goods.php中,使用如下方法: public function tableName(){return {{goods}};}完成。...

ES 运维
查看段内存大小 curl -s -uelastic:changeme http://IP:9200/_cat/segments?v curl -s -uelastic:changeme http://IP:9200/_cat/nodes?v&hsegments.count,segments.memory,segments.index_writer_memory,segments.version_map_memory,segments.fixed_bitset_memory 返…...

MySQL: [ERROR] /usr/sbin/mysqld: Incorrect key file for table './xxx/xxxx.MYI'; try to repair it
MySQL 日志(/var/log/mysql/mysqld.log)信息显示 (原文链接 http://ddbiz.com/?p129) [ERROR] /usr/sbin/mysqld: Incorrect key file for table ./xxx/xxxx.MYI; try to repair it 还好这是一个MYISAM表,重建一下索引吧。 不过最困难的是,这个表有 8…...

MySQL笔记-解决InnoDB: Could not find a valid tablespace file for 'mysql/innodb_index_stats'
这里主要是./mysql_install_db时会出现的。 如下的问题: 这里主要的问题是:my.cnf权限问题,这里文件的权限为777。这是不安全的。 主要是因为my.cnf中的[mysqld]中的datadir找不到。 把权限设置为:644即可 ./mysql_install_db…...

遇到的Exception/error及解决办法记录汇总
一、java.net.SocketException 1、java.net.SocketException:Connection reset 首先,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Co…...

vue项目中npm install初始化报错以及‘cross-env’ 不是内部或外部命令问题
cross-env’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 如果你碰到这个问题,你的项目中node_modules应该是没有正常创建成功,导致找不到依赖包。 如果有node_modules文件夹,请删除node_modules文件夹,然后…...

这里稍稍记录一下null和undefined
这两个值几乎没有什么区别,我们都知道这两个值都表示无的意思,他们的历史也简单的说一下吧 原来,这与JavaScript的历史有关。1995年JavaScript诞生时,最初像Java一样,只设置了null作为表示"无"的值。根据C语…...

mysql显示表已存在_mysql的安装与卸载
1.下载压缩包解压之后再新建一个my.ini的文件输入[mysqld]# 设置3306端口port3306# 设置mysql的安装目录basedirD:mysql-8.0.21-winx64# 设置mysql数据库的数据的存放目录datadirD:mysql-8.0.21-winx64data# 允许最大连接数max_connections200# 允许连接失败的次数。这是为了防…...

Redis缓存和数据库不一致性
先更新数据库,再删除缓存,如果删除缓存失败了,会导致数据库中是新数据,缓存中是旧数据,数据就出现了不一致。一般普通的解决方式有下面两个: 先删除缓存,再更新数据库。如果数据库更新失败了,那么数据库中是旧数据,缓存中是空的,那么数据不会不一致。读的时候缓存没…...

电信的 DNS 服务器地址
上海电信 202.96.209.5202.96.209.6202.96.209.133202.96.209.134...

蓝牙的一些基础知识
最初是在疑惑蓝牙spec中写的PPM是什么意思,经过查找一些文章, 百度百科中记录的PPM是: part per million 百万分之… 1ppm10 -6数量级 参考文章《关于蓝牙你不可不知道的几个基础常识》(http://www.51hei.com/bbs/dpj-148440-1.ht…...

ppm
2019独角兽企业重金招聘Python工程师标准>>> ppm是英文part per million的缩写,表示百万分之几; 1ppm指的是 百万分之一; 1ppm/℃指的是 随温度改变1℃改变百万分之一; 转载于:https://my.oschina.net/codepencil/blog…...

ROHS认证是什么?
RoHS认证其实指的是一种有害物质的测试,全称《关于在电子电气设备中限制使用某些有害物质指令》。 RoHS认证检测项目及法规要求各均质材料中的含量不得超过以下限值: 1)铅(Pb):<1000 ppm 2࿰…...

vhg电路是什么意思_XON-3200VHG,XON-3200VHG pdf中文资料,XON-3200VHG引脚图,XON-3200VHG电路-Datasheet-电子工程世界...
EURO QUARTZ TCXO - XON-3200VHG Series3.2 x 2.5 x 0.9mm SMD - Clipped Sinewave 12.6MHz to 40MHzUltra-miniature SMD package 3.2 x 2.5 x 0.9mmStability 0.5ppm over -30� to 85�...

ppm调制matlab程序,求助:谁能帮我编写一个4ppm的解调程序 谢谢了
www.cn-17.net 发表于 2012-5-28 13:59 要什么样的?我这里有一个调制部分的 输出了调制信号波形和其频谱 你看能在此基础上加上解调信号的程序吗 还要求输出误码率 (4ppm就是单脉冲位置的调制与解调 及一帧有四个时隙调制出的波形是一帧李只有一个时隙有脉冲(显…...

PPM文件
PPM文件简介文件分类及扩展举例简介 PPM(Portable Pixmap Format)是一种简单的图像格式,仅包含格式、图像宽高、bit数等信息和图像数据。 用txt打开.ppm文件的话,文件内容会如下所示: 文件分类及扩展 除开PPM还有两个与之相关的…...

在matlab中输出怎么表示什么意思,matlab中基于帧输出是什么意思
21.MATLAB支持的几种图像文件格式:⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式。⑵BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位RLE(Run length Encoded)的图像。文…...

ppm\℃是什么意思/
转自http://www.zybang.com/question/b158a106b4e39d8fdb2b93fd3777a00f.html 在基准电压的数据手册里,我们会找到一个描述基准性能的直流参数,称为温度漂移(也称温度系数)或简称TC(Temperature Coefficient),通常以ppm/℃表示.对…...

译文 | Kubernetes 1.26:PodDisruptionBudget 守护不健康 Pod 时所用的驱逐策略
对于 Kubernetes 集群而言,想要确保日常干扰不影响应用的可用性,不是一个简单的任务。上月发布的 Kubernetes v1.26 增加了一个新的特性:允许针对 PodDisruptionBudget (PDB) 指定不健康 Pod 驱逐策略,这有助于在节点执行管理操作…...

c++编写的学生成绩管理系统
该套代码的功能为学生成绩管理系统,包含学生的基本信息:姓名,性别,生日。 学生的成绩信息:学号,五科成绩,五科课程的名字(不同专业学生有不同的课程),总分,专业ÿ…...

计算学生成绩的最高分、最低分和平均分(数组全是方法)
代码: 1 package com.mon10.day24;2 3 import java.util.Scanner;4 5 /** 6 * 类说明 :计算学生成绩的最高分、最低分和平均分7 * author 作者 : chenyanlong 8 * version 创建时间:2017年10月24日 9 */ 10 public class ArraysTest2 { 11 12 int[]…...

c语言写函数 按成绩查找,C语言课程设计---学生成绩管理查询系统(22页)-原创力文档...
《C语言程序》课程设计报告书设计题目: 学生成绩管理查询系统专业: 班级:计算机科学与技术 C-0942学生姓名: 学号: 02指导教师:2010年7月摘要C语言是世界上广泛流行的计算机高级编程语言。它既可以作为系统…...

java-学生成绩管理系统-附代码
很早之前写的,今天整理资料翻到了,仅作纪念。 《学生成绩管理系统》 蓝奏云盘 https://wwt.lanzout.com/iqMYi0673jlc 阿里云盘 https://www.aliyundrive.com/s/D16fHrCHKiP 一、学生成绩管理系统实现环境:JDK1.8,ECLIPSE 4.4.2; 二、功能&am…...

使用JAVA二维数组对平均成绩,一个年级有m个班,每个班有n个学生,编写java程序用二维数组保存学生成绩,计算学生平均成绩...
匿名用户3级2015-12-03 回答public class ScoreDemo {public static void main(String[] args) {int m 2;//班级个数int n 3;//每个班级的人数int[][] ary new int[m][n];inputScore(ary);//输入每个人的分数,保存到数组printAvg(ary);//打印平均分}private static void pri…...
TypeScript 数据模型层编程的最佳实践
虽然 TypeScript 主要用于客户端,而数据模型的设计主要是服务端来做的。 但是要写出优雅的代码,也还是有不少讲究的。 让我们从一个简单的我的文章列表 api 返回的数据开始,返回的文章列表的信息如下: {"id": 2018,&qu…...

2017年3月6号课堂笔记
2017年3月6号 晴 大风 备注: 这两天感冒了,所以7号才写完发表 主要内容:For循环、break、continue 一、do-while老师上周留题目(摄氏度华氏度对照表) 1、老师代码: public class WhileDemo08 { /** * 使用d…...

安卓 每日一题 2019年9-12月问题及答案
最新 文章连接,本文不再同步 安卓 每日一题 2019年9-12月问题及答案 文章目录安卓 每日一题 2019年9-12月问题及答案安卓2019年09月每日一题安卓2019年10月每日一题安卓2019年11月每日一题安卓2019年12月每日一题安卓2019年09月每日一题 Android 9月5日题ÿ…...

成绩3
/**Corpyright (c)2013,烟台大学计算机学院*All right reseved.*作 者 :曹昕卓 *完成日期:2013年12月2日*版 本 号:v1.0*输入描述:*问题描述:成绩*程序输出:*问题分析:*算法设计:*…...
Python学生成绩管理系统----极简版
Python学生成绩管理系统(学业繁忙,不提供答疑) 全部代码:点击打开链接 说明: 这是一个极其简易的管理系统,这是本人本科阶段的课堂作业,并无任何商业或者实用价值(因上次有人留言说我写的太烂了࿰…...

全国青少年编程等级考试python二级真题2020年12月(含题库答题软件账号)
对青少年编程等级考试Python真题答题考试系统关注的请点击 https://blog.csdn.net/zhengzyx2040/article/details/119329247 青少年软件编程(Python)等级考试试卷(二级) 分数:100 题数:37 一、单选题(共…...

python3题目_Python3---练习题目
第一题:#!/usr/bin/python#-*- coding: UTF-8 -*-Python3 练习案例题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组…...

c语言开发一个学生成绩统计程序,学生学分管理程序-c语言代码-学生成绩统计c语言代码...
《学生学分管理程序-c语言代码-学生成绩统计c语言代码》由会员分享,可在线阅读,更多相关《学生学分管理程序-c语言代码-学生成绩统计c语言代码(20页珍藏版)》请在人人文库网上搜索。1、程序设计基础实训项目名称:学生学分管理系 别࿱…...

学生信息存储[1] 8月12日
1.(必须自己完成,项目的开始) 学生信息管理项目,输入任意个学生的姓名,年龄,成绩,每个学生的信息存入一个字典内,然后放入到列表中(每个学生需要手动输入) 如…...

指针 2018年12月9日
指针 2018年12月9日 以下内容仅供娱乐,欢迎随时探讨,请多指教! 1、编写程序:完成函数void my_power(double x,int y,double *mypow)的定义,该函数的功能是:求xy(即x的y次方)存入指针变量mypow所指向的存贮单…...

统计成绩java最高成绩_从键盘输入本次 Java 考试五位学生的成绩,求考试成绩最高分。_学小易找答案...
【简答题】你准备去海南旅游,现在要订购机票。机票的价格受季节旺季、淡季影响,而且头等舱和经济舱价格也不同。假设机票原价为5000元,4~10月为旺季,旺季头等舱打九折,经济舱打八折,淡季头等舱打五折,经济舱打四折。编写程序,使用嵌套if选择结构,根据出行的月份和选择的舱位输出…...

python3程序设计基础_3月9日《Python程序设计基础》列表课程代码
一、基础内容代码: # 列表 list --> C 数组 # 列表定义、列表添加、查询、修改、删除、排序 # 1、列表的定义 [1, 2, 3] # 注意:列表中可以有不同类型的数据***但是我们往往在一个列表中只存储一种数据类型 # []每一项成为元素,项 item # …...

二级python多久出成绩_12月4日,总结发现杯,备战python二级
上午看二级第一二章下午查询成绩夜晚看第三章做笔记,回看笔记总结:整体不是很理想,但感觉都比我高,呜呜呜他们的成绩一个个的都出来了,我的呢……为什么,还查不到,我知道我考的差,但…...

2022年11月12日使用二重循环求个班成绩
在这里插入代码片 public static void main(String[] args) {// TODO 自动生成的方法存根Scanner inputnew Scanner(System.in);int shuzu[]new int[3];double aver[]new double[3];int j;double sum0;for(int i0;i<shuzu.length;i) {System.out.println("请输入第&quo…...

淘宝表单图片组件
"picImages": {"extension": {"dialogType": "dialog","relateData": "wigete_id","sendDataType": "url","dele": true,"moduleType": "single_image",&quo...

JavaScript实现淘宝网图片的局部放大功能
要实现的效果如下: <!DOCTYPE html> <html> <head><meta charset"UTF-8"><title>demo1</title><style type"text/css">*{margin: 0;padding: 0;}.box{position: relative;width: 300px;height: 200p…...

淘宝上传图片太大怎么办?怎么把图片压缩变小?
许多淘宝店主在给店铺上传商品展示图时,会由于平台对图片kb大小有500kb的限制会导致有些图片无法上传,这时候需要压缩图片大小来降低照片kb大小。怎么把图片压缩到500kb以下呢?下面给大家带来了一款图片压缩指定大小(图片压缩到指定大小 图片…...

搞定淘宝宝贝图片尺寸标注
这个是网上找的,我没试过,只觉得太复杂, 如何用PS搞定宝贝图片尺寸标注http://hi.baidu.com/xiangweiyisheng/blog/item/b6fe831b289f45068718bfbf.html 还有人说用AutoCAD,MarkMan之类的专业软件,都太复杂了,我只要…...

淘宝API图片尺寸的缩略图解决办法
淘宝Open API返回的图片pic_url,尺寸一般都很大,不太好用,需要缩略图。 解决方法是: pic_url的图片URL后面加上:_sum.jpg 例如:1234.jpg 改为1234.jpg_sum.jpg 可参考:wap.taobao.com 还有其他的…...

《数据库原理及应用教程(第4版 | 微课版)》第3章:“关系数据库标准语言——SQL”和第7章:“SQL Server 2012高级应用”的学习提纲
文章目录前言3.1 SQL的基本概念与特点3.2 SQL Server 2012简介——略3.3 数据库的创建和使用3.4 数据表的创建和使用3.5 单关系(表)的数据查询3.6 多关系(表)的连接查询3.7 子查询3.8 其他类型查询3.9 数据表中数据的操纵3.10 视图…...

rng(‘default‘)
产生伪随机数有一个种子,所谓的伪随机就是指有一定“规律”,而这个种子就是这个“规律”。 rng(‘default’)就是用默认种子。不写也是一样的,只要你没改变过种子,matlab刚打开默认就是种子0 默认种子是0,但不代表每次…...

C++中default标识的构造函数的说明
C中default标识的构造函数的说明如下: 一般地,default标识的构造函数放在.h文件中,cpp文件不需要再写构造函数定义了,否则会编译会报错,提示:函数已有主体。而没有default标识的默认构造函数,就…...

C++11 中的 =default 的含义
在 C 中,当用户定义一个类的时候,如果没有给类定义任何构造函数,那么编译器会生成一个默认构造函数,使得在定义该类的对象的时候,调用了自动生成的默认构造函数为成员变量执行默认初始化。如果用户在定义一个类的时候&…...
Python解题 - CSDN周赛第38期
又来拯救公主了。。。本期四道题还是都考过,而且后面两道问哥在以前写的题解里给出了详细的代码(当然是python版),直接复制粘贴就可以过了——尽管这样显得有失公允,考虑到以后还会出现重复的考题,所以现在…...

AcWing 3382. 整数拆分
乍一眼看到还以为做个解空间树和dfs就做出来了...#include <bits/stdc.h> using namespace std; const int MOD1e9;int n,ans; void dfs(int x){if(x<0)return;if(x0)ans;for(int i1;i<x;ii<<1)dfs(x-i); }int main(){cin>>n;dfs(n);cout<<ans;r…...

AirPlay Deamon学习(Linux Daemon)
关于deamon在Linux中是守护进程,而我在做苹果物联网apple tv投屏airplay调用的是apple 底层deamon代码,特做次文档学习,该文章分为对Linux Daemon的学习和AirPlay Deamon学习 一,守护进程概述 Linux Daemon(守护进程&…...

Linux: config: CONFIG_AS_AVX2;as-instr
文章目录 配置as-instr日志配置 这个不是配置的,它是根据binutils是否支持相应的指令来做的。所以还不能只是依赖于config文件来判断有没有配置相关的宏定义。 arch/x86/Makefile# #does binutils support specific instructions?avx2_instr :=$(call as-instr,vpbroadcas…...

LeetCode2094. 找出 3 位偶数(python)
题目 给你一个整数数组 digits ,其中每个元素是一个数字(0 - 9)。数组中可能存在重复元素。 你需要找出 所有 满足下述条件且 互不相同 的整数: 该整数由 digits 中的三个元素按 任意 顺序 依次连接 组成。 该整数不含 前导零 该整…...

【错误包】「go语言」项目中设计适合自己的错误包——通过AST自动生成代码和MD文档
文章目录一、如何设计errors错误包1. go的error和其他语言的trycatch的区别2. 常用的errors、fmt和pkgerrors错误处理包3. 使用errors打印调用栈4. 使用wrapf保存和打印error错误栈5. 如何设计错误码更加科学二、自定义错误包1. 自定义错误码2. errors实现withcode模式和实现co…...

【CSAPP】进程 | 上下文切换 | 用户视角下的并发进程
💭 写在前面:本文将学习《深入理解计算机系统》的第六章 - 关于异常控制流和系统级 I/O 的 进程部分。CSAPP 是计算机科学经典教材《Computer Systems: A Programmers Perspective》的缩写,该教材由Randal E. Bryant和David R. OHallaron 合著…...

数组模拟单链表
实现一个单链表,链表初始为空,支持三种操作: 向链表头插入一个数; 删除第 k个插入的数后面的数; 在第 k个插入的数后插入一个数。 现在要对该链表进行 M次操作,进行完所有操作后,从头到尾输出整…...

03 - 初识Linux进程
---- 整理自狄泰软件唐佐林老师课程 查看所有文章链接:(更新中)Linux系统编程训练营 - 目录 文章目录1. 进程理论状态切换1.1 问题1.2 进程生命周期1.3 Linux进程基本概念1.4 Linux进程生命周期1.5 Linux进程状态剖析1.6 Linux进程必知必会1.…...

2023年产品经理需要考的证书——NPDP,含金量高,666
产品经理国际资格认证NPDP是国际公认的唯一的新产品开发专业认证,集理论、方法与实践为一体的全方位的知识体系,为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会(PDMA)成立于1979年…...

OSPF+MGRE实验
实验要求: 1、左边三台设备配置OSPF 10,区域0; 2、右边为OSPF 1 中间是Area0,下挂Area1和Area2 3.两个进程之间有ISP设备,需要访问公网 4.OSPF 1区域零中,中心设备不启动动态路由协议,配置MGRE …...

模块化技术
前端模块化1.什么是前端模块化将复杂的程序根据规则或者规范拆分成若干模块,一个模块包括输入和输出模块化的内部数据和实现是私有的,对外暴露一些接口与其他模块进行通信2.前端模块化的背景前端模块化是一种标准,不是实现理解模块化是理解前…...

【Java版oj】day13参数解析、跳石板
目录 一、参数解析 (1)原题再现 (2)问题分析 (3)完整代码 二、跳石板 (1)原题再现 (2)问题分析 (3)完整代码 一、参数解析 &…...

腾讯云云服务器S5性能评测
腾讯云服务器标准型S5实例CPU采用Intel Xeon Cascade Lake或者Intel Xeon Cooper Lake处理器,主频2.5GHz,睿频3.1GHz,标准型S5云服务器基于全新优化虚拟化平台,配有全新的Intel Advanced Vector Extension (AVX-512) 指令集&#…...

【Vue3 基础加餐篇】07.key 的作用源码解析
Vue 中增加 key ,是为了更精准的定位到元素,从而减少渲染。那具体这个更精准的定位是什么?以及为什么能减少渲染呢?我们在这一章节讲述。 虚拟 DOM 要聊这个之前,必须要有虚拟 DOM 的概念,这个不得不聊。 虚拟对象就是一种用来描述真实 DOM 的 js 对象。这样我们就可以…...

附录3:Anolis 龙蜥 下载
以语雀 文档为准 视频演示 点击查看【bilibili】 官网:https://openanolis.cn/ | 7.7 正式版 | https://mirrors.openanolis.cn/anolis/7.7/isos/GA/x86_64/ | | — | — | | 7.9 正式版 | https://mirrors.openanolis.cn/anolis/7.9/isos/GA/x86_64/ | | 7.9 优…...

u盘被苹果电脑磁盘抹掉了怎么恢复 ?三种实用方法请收好
u盘如此重要,然而和其他存储设备一样,会因删除、格式化、损坏等原因而丢失数据?u盘被苹果电脑磁盘抹掉了怎么恢复 ?在这里,易我小编会讲解苹果电脑的数据恢复的相关操作方法。 一、u盘的简单介绍 U盘是一种小型存储设…...

Android绘制——自定义view之onLayout
简介 在自定义view的时候,其实很简单,只需要知道3步骤: 测量——onMeasure():决定View的大小,关于此请阅读《Android自定义控件之onMeasure》布局——onLayout():决定View在ViewGroup中的位置绘制——onD…...

我的 System Verilog 学习记录(11)
引言 本文简单介绍 SystemVerilog 的其他程序结构。 前文链接: 我的 System Verilog 学习记录(1) 我的 System Verilog 学习记录(2) 我的 System Verilog 学习记录(3) 我的 System Verilo…...

【测试开发篇4】测试模型
目录 一、软件测试V模型 编码前 概要设计: 详细设计: 编码后: 单元测试&集成测试 系统测试 验收测试 V模型的特点 优点: 缺点: 二、软件测试W模型 编码之前: 编码的时候: 编…...

DETR网络模型构建
这篇文章主要为记录DETR模型的构建过程 首先明确DETR模型的搭建顺序:首先是backbone的搭建,使用的是resnet50,随后是Transformer模型的构建,包含编码器的构建与解码器的构建,完成后则是整个DETR模型的构建 构建代码在detr.py文件中…...

Golang实现十类排序算法对比展示
排序算法分类实现 冒泡排序 时间复杂度:O(n^2)空间复杂度:O(1)稳定性:稳定特点:简单易懂,但效率较低,适用于数据量较小的情况。 排序过程: 从第一个元素开始,依次比较相邻的两个…...

day11-函数作业
编写一个函数,交换指定字典的key和value。 例如:dict1{a:1, b:2, c:3} --> dict1{1:a, 2:b, 3:c} def exchange_num(dict1):new_dict {}for key in dict1:new_key dict1[key]new_value keynew_dict[new_key] new_valuereturn new_dict dict1{a:1, b:2, …...

Leetcode.1292 元素和小于等于阈值的正方形的最大边长
题目链接 Leetcode.1292 元素和小于等于阈值的正方形的最大边长 Rating : 1735 题目描述 给你一个大小为 m x n的矩阵 mat和一个整数阈值 threshold。 请你返回元素总和 小于或等于 阈值的正方形区域的最大边长;如果没有这样的正方形区域,则…...

css元素定位:通过元素的标签或者元素的id、class属性定位,还不明白的伙计,看这个就ojbk了!
前言 大部分人在使用selenium定位元素时,用的是xpath元素定位方式,因为xpath元素定位方式基本能解决定位的需求。xpath元素定位方式更直观,更好理解一些。 css元素定位方式往往被忽略掉了,其实css元素定位方式也有它的价值&…...

敬伟PS教程【A01-A10】
文章目录新建文档页面详细内容如何再次修改文件参数修改图像大小像素与分辨率的关系:打开文档存储文档常用文件格式关闭开工前准备图层基本知识图层面板创建图层图层操作画面查看视图旋转基本移动操作新建文档 ①可以点击顶部菜单:编辑-首选项-常规 勾选…...

2023年市场快速恢复,社交资讯营销如何把握新机遇
易观:2023年3月14日,巨量引擎联合易观发布《中国社交资讯市场营销白皮书2023-全域经营 聚量新生》,对中国社交资讯市场发展、未来机会、广告营销诉求以及媒体解决方案进行了深入分析。2023年社交资讯蕴含大量新机遇,可关注下沉交友…...

算法详解-递归
文章目录前言主要内容初级阶乘斐波那契数列汉诺塔数组求和幂运算数组翻转字符串翻转中级全排列子集高级正则表达式匹配N皇后问题总结无限循环栈溢出更多宝藏前言 😎🥳😎🤠😮🤖🙈💭&…...

前端安全-内容安全策略CSP(Content Security Policy)
目录 CSP xss 使用方法 http头部设置 meta标签设置 策略集组成 常见指令 default-src report-uri 示例 指令(属性) 指令值(属性值) CSP学习链接 CSP 内容安全策略,为了页面内容安全而制定的一系列防护策…...

Shell Scripting part1
1.Introduction PS1"$ " ; export PS1[maxwelloracle-db-19c shell_20230320]$ PS1"$ " ; export PS1 $ echo #!/bin/sh > my-script.sh $ echo echo Hello World >> my-script.sh $ chmod 755 my-script.sh $ ./my-script.sh Hello World $ cat...

权威认证 | 腾讯云入选最新IaaS云原生安全报告
近日,国际权威研究机构Forrester发布最新研究报告《The IaaS Platform Native Security (IPNS) Landscape, Q1 2023》(以下简称“IPNS报告”),从IPNS供应商规模、产品类型及重点案例等多个维度进行评估。腾讯云凭借在IaaS云原生安…...

Codeforces Round 859 (Div. 4) A~G
目录 A. Plus or Minus B. Grab the Candies C. Find and Replace D. Odd Queries E. Interview F. Bouncy Ball G. Subsequence Addition A. Plus or Minus 思路:按题目要求输出即可。 void solve() {int a,b,c;cin>>a>>b>>c;if(a-bc)cout<…...

Java实现十类排序算法对比展示
Java实现排序算法 本代码展示了Java中常见的十种排序算法,并对每种算法的时间复杂度、空间复杂度、优缺点进行了说明。 代码中包含了冒泡排序、快速排序、插入排序、选择排序、希尔排序、归并排序、堆排序、计数排序、桶排序、基数排序。 import java.util.ArrayLi…...

BFC块级格式化上下文
一、概念 BFC - Block Formatting Context 块级格式化上下文 BFC的定义,在官方文档到中,是这么介绍BFC的:A block formatting context contains everything inside of the element creating it that is not also inside a descendant elemen…...

用于小规模低成本场景的kafka + eCAL架构设计
Kafka作为存储、性能兼备的消息队列,适用场景很多,伸缩性也很强。如何调节kafka的配置参数,以及设计专题、分区的数量、物理位置,很大程度上影响到整个架构的成败。很多文章是站在数据中心的角度来谈kafka的配置,而对于…...

SpringCloud微服务技术栈.黑马跟学(五)
SpringCloud微服务技术栈.黑马跟学 五今日目标1.初识elasticsearch1.1.了解ES1.1.1.elasticsearch的作用1.1.2.ELK技术栈1.1.3.elasticsearch和lucene1.1.4.为什么不是其他搜索技术?1.1.5.总结1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排1.3.es的一些…...

3.19学习总结
看了一下windows的内核与原理的目录,开始的学习 windows都有哪几大子系统 需要记住: 包括网络子系统,设备管理子系统,内存管理子系统,BIOS加载,调试子系统,GUI子系统,远程通信子系…...

Vue 3.0 全局API
Vue 2.x 有许多全局 API 和配置,这些 API 和配置可以全局改变 Vue 的行为。例如,要创建全局组件,可以使用 Vue.component 这样的 API: Vue.component(button-counter, {data: () > ({count: 0}),template: <button click&qu…...

李沐:《动手学深度学习》的初衷
Datawhale学习 分享人:李沐,动手学深度学习作者本文是李沐在Datawhale学习会上的分享:跟李沐导师,动手学深度学习(点击可跳转)相信大家都听说过 ChatGPT,以及最近发布的 GPT-4。在五年前&#x…...

一文带你看懂大火的“虚拟数字人”
如果现在提到虚拟数字人你还一头雾水的话,那真得好好上网冲浪一下了! 作为和元宇宙一同火起来的概念,虚拟数字人在影视、游戏、动漫等领域早就开始应用,并且颇具规模。虚拟数字人到底能有多火呢?网红虚拟美妆博主柳叶…...

C语言预处理条件语句的 与或运算
C语言预处理条件语句的 与或运算 1.#ifdef 与或运算 #ifdef (MIN) && (MAX) ----------------------------错误使用 #if defined(MIN) && defined(MAX) ---------------- 正确使用 #ifdef (MIN) || (MAX) -----------------------------错误使用 …...

学习Java——注解
目录 元注解 自定义注解 Java中常用的注解 Spring常用注解 Spring中的这几个注解有什么区别:Component 、Repository、Service、Controller 如何自定义一个注解? 注解与反射的结合 每日寄语 元注解 说简单点,就是 定义其他注解的注…...

doris初学笔记
一、doris是什么 Apache Doris是一个现代化的MPP(大规模并行分析)分析型数据库产品。仅需亚秒级响应时间即可获得查询结果,有效地支持实时数据分析。Apache Doris的分布式架构非常简洁,易于运维,并且可以支持10PB以上…...

linux-inotify工具监控文件状态变化总结
linux-inotify工具监控文件状态变化总结 大纲 1 安装2 使用 Inotify 它是在内核 2.6.13 版本中引入的一个新功能,它为用户态监视文件系统的变化提供了强大的支持,允许监控程序打开一个独立文件描述符,并针对事件集监控一个或者多个文件&am…...

版本控制系统(VCS)-Git使用-Introduction
版本控制系统(VCS)-Git使用-Introduction git的使用模式 git的使用模式可以分为本地个人工作模式和团队协作工作模式 本地个人工作模式 本地个人工作模式就是只在本地使用git,用来管理自己的项目或者文件,这个模式中所使用到的命令都是一些基本…...

Git 的 Cherry-Pick
1、什么是 Cherry-Pickcherry-pick 是 Git 版本控制工具中的一个命令,和 commit 、pull 一样,它只是一个命令。cherry-pick 和它的名称一样,精心挑选,挑选一个我们需要的 commit 进行操作。它可以用于将在其他分支上的 commit 修改…...

浅谈 kafka
入门 1、什么是 kafka? apache Kafka is a distributed streaming platform. What exactly dose that mean? Apache Kafka 是消息引擎系统,也是一个分布式流处理平台(Distrib...

湖南中创教育PMP 高手项目经理做好风险管理的10条秘籍
在这个VUCA时代越来越多企业开始重视风险管理。其实项目风险管理的好处是巨大的,如果您以积极的方式处理不确定的项目事件,则可能赚很多钱或提前拿到现金流。结果是您可以最大程度地减少项目威胁的影响并抓住发生的机会。 法则01 将风险管理纳入项目&a…...

logic
管综逻辑 一、简单命题1、直言命题(1) 矛盾关系:必有一真一假(2) 从属关系:上真推下真,下假推上假(3) 上反对关系:至少一假(4) 下反对关系:至少一真2、真假话题型第一步:翻译第二步:找矛盾或反对…...

【Python学习实操】怎么做利用python做岗位的分析报告
文章目录前言本篇以拉勾网为例来说明一下如何获取 Ajax 请求内容一、本文目标二、分析结果1.引入库2.页面结构3.请求参数4.构造请求,解析数据4.获取所有数据总结前言 前两篇我们分别爬取了糗事百科和妹子图网站,学习了 Requests, Beautiful Soup 的基本…...

营销信息管理如何帮助您的业务?
在我们互联的世界中,访问有关您的客户、潜在客户和目标受众的个人数据比以往任何时候都更容易。所有营销人员都应该对触手可及的数据负责。这不再是消费者数据是否推动转化的问题,这是如何最好地利用这些信息的问题。 什么是营销信息管理? 营…...

vue中的axios和proxy代理
引入axiosnpm install axios配置proxy代理,解决跨域问题proxyTable: {"/api": {target: "http://192.168.X.XXX:XXXX", //需要跨域的目标pathRewrite: { "^/api": "" }, //将带有api的路径重写为‘’ws: true, //用与支持w…...

蓝牙模块各种工作模式
摘要:本文主要归纳总结蓝牙模块的不同工作模式,通过蓝牙模块不同的工作模式了解其扮演不同角色时工作的一个基本原理,为更深入的研究蓝牙模块底层的工作机制和技术方案进行铺垫。 1、主设备工作模式 主设备是能够搜索别人并主动建立连接的一…...

基于java+SpringBoot+vue的乐校园二手书交易管理系统设计与实现【源码+论文+演示视频+包运行成功】
博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例(200套) 目录 一、效果演示 二、…...

Promise与async/await的区别?
Promise与async/await的区别Promiseasync/await作用区别Promise Promise是一个对象,对象和函数的区别就是对象可以保存状态,函数不可以(闭包除外)并未剥夺函数return的能力,因此无需层层传递callback,进行…...

LeetCode刷题记录---数位DP算法
😄 学会数位dp算法,可以连杀好几道力扣困难题,加油~ 🚀题目: 难度题目困难2376. 统计特殊整数困难1012. 至少有 1 位重复的数字困难233. 数字 1 的个数困难面试题 17.06. 2出现的次数🚀学习资料: 数位dp算法,我是跟着灵神学的,感谢灵神!数位 dp 通用模板参考灵神…...

Qt5.12实战之QWidget使用
main.cpp#include "mainwindow.h" #include <QApplication> #include <QDebug>int main(int argc, char *argv[]) {QApplication a(argc, argv);MainWindow w;w.resize(1920,1080);w.setWindowTitle(QStringLiteral( "基于qt5开发的应用程序")…...

Leetcode704——二叉搜索
题目: 数组:704.二分查找 给定一个 n 个元素有序的(升序)整型数组 nums 和一个目标值 target ,写一个函数搜索 nums 中的 target,如果目标值存在返回下标,否则返回 -1。 要求时间复杂度 O(log n…...

优先级队列的介绍与模拟实现
目录 priority_queue的介绍和使用 priority_queue的介绍 priority_queue的使用 仿函数 堆的调整算法 priority_queue的模拟实现 priority_queue的介绍和使用 priority_queue的介绍 1、优先级队列是一种容器适配器,根据严格的弱排序标准,它的第一个…...

近世代数 笔记和题型连载 第六章(子群)
文章目录基本概念1.子群2.子群判定定理3.群的重要性质4.子半群5.共轭子群6.正规子群相关题型1.证明一个代数系统是另一个代数系统的子群2.证明一个代数系统是另一个代数系统的子群3.判断一个代数系统是否是另一个代数系统的子群4.证明一个代数系统是另一个代数系统的子群5.证明…...