文本处理函数
常用函数
函数 |
说明 |
Left() |
返回串左边的字符 |
Length() |
返回串的长度 |
Locate() |
找出串的一个子串 |
Lower() |
将串转换为小写 |
LTrim() |
去掉串左边的空格 |
Right() |
返回串右边的字符 |
RTrim() |
去掉串右边的空格 |
Soundex() |
返回串的SOUNDEX值 |
SubString() |
返回子串的字符 |
Upper() |
将串转换为大写 |
实例
Left()
从左边开始,截取前两位字符
1
| SELECT LEFT("123456",2);
|
Right()
从右边开始,截取后两位字符
1
| SELECT RIGHT("123456",2);
|
Length()
返回字符串”1234”的长度,长度为4
Locate()
查看子串”12”在字符串”33312345612”中第一次出现的位置,结果为4
1
| SELECT LOCATE("12","33312345612");
|
从第6位开始查找,查看子串”12”在字符串”33312345612”中第一次出现的位置,结果为10
1
| SELECT LOCATE("12","33312345612",6);
|
Lower()
将字符串的所有大写字母转化为小写
Upper()
将字符串的所有小写字母转化为大写
LTrim()
去掉字符串左边的空格
RTrim()
去掉字符串右边的空格
Trim()
去掉字符串前后的空格
Soundex()
SubString()
截取从第三位开始的及后面的字符串,下面两个sql语句的结果是一样的
1 2
| SELECT SUBSTRING("123456",3); SELECT SUBSTRING("123456" FROM 3);
|
截取从第二位开始的及后面的字符串,且截取的字符串长度为2
1 2
| SELECT SUBSTRING("123456",2,2); SELECT SUBSTRING("123456" FROM 2 FOR 2);
|
日期和时间处理函数
常用函数
函数 |
说明 |
AddDate() |
增加一个日期(天、周等) |
AddTime() |
增加一个时间(时、分等) |
CurDate() |
返回当前日期 |
CurTime() |
返回当前时间 |
Date() |
返回日期时间的日期部分 |
DateDiff() |
计算两个日期之差 |
Date_Add() |
高度灵活的日期运算函数 |
Date_Format() |
返回一个格式化的日期或时间串 |
Day() |
返回一个日期的天数部分 |
DayOfWeek() |
对于一个日期,返回对应的星期几 |
Hour() |
返回一个时间的小时部分 |
Minute() |
返回一个时间的分钟部分 |
Month() |
返回一个日期的月份部分 |
Now() |
返回当前日期和时间 |
Second() |
返回一个时间的秒部分 |
Time() |
返回一个日期时间的时间部分 |
Year() |
返回一个日期的年份部分 |
实例
AddDate()
给日期加两天
1
| SELECT ADDDATE("2021-09-17 10:34:11",2);
|
给日期加一天或周或月或年
1 2 3 4 5 6 7 8
| #加一天 SELECT ADDDATE("2021-09-17 10:34:11",INTERVAL 1 DAY); #加一周 SELECT ADDDATE("2021-09-17 10:34:11",INTERVAL 1 WEEK); #加一月 SELECT ADDDATE("2021-09-17 10:34:11",INTERVAL 1 MONTH); #加一年 SELECT ADDDATE("2021-09-17 10:34:11",INTERVAL 1 YEAR);
|
AddTime()
给日期加1天1小时1分1秒
1
| SELECT ADDTIME("2021-09-17 10:34:11","1 1:1:1");
|
CurDate()
返回当前日期
CurTime()
返回当前时间
Date()
返回日期时间的日期部分
1
| SELECT DATE("2021-09-17 10:34:11");
|
DateDiff()
返回两个日期之差(结果为天数),前面的日期减去后面的
1
| SELECT DATEDIFF("2022-09-19 11:34:11","2021-09-18 10:34:11");
|
Date_Add()
高度灵活的日期运算函数,给一个时间添加秒、分、小时、天、月、年
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| #加1天 SELECT DATE_ADD("2021-09-17 10:34:11",INTERVAL 1 DAY); #加1周 SELECT DATE_ADD("2021-09-17 10:34:11",INTERVAL 1 WEEK); #加1月 SELECT DATE_ADD("2021-09-17 10:34:11",INTERVAL 1 MONTH); #加1年 SELECT DATE_ADD("2021-09-17 10:34:11",INTERVAL 1 YEAR); #加1秒 SELECT DATE_ADD("2021-09-17 10:34:11",INTERVAL 1 SECOND); #加1分 SELECT DATE_ADD("2021-09-17 10:34:11",INTERVAL 1 MINUTE); #加1小时 SELECT DATE_ADD("2021-09-17 10:34:11",INTERVAL 1 HOUR);
|
格式化时间,第一个参数为要格式化的时间,第二个参数为格式
1
| SELECT DATE_FORMAT("2021-09-17 10:34:11","%Y年%m月%d日 %H时%i分%s秒");
|
以下是可用于构建日期格式字符串的说明符及其含义
限定符 |
含义 |
%a |
三个字符缩写的工作日名称,例如:Mon, Tue, Wed,等 |
%b |
三个字符缩写的月份名称,例如:Jan,Feb,Mar等 |
%c |
以数字表示的月份值,例如:1, 2, 3…12 |
%D |
英文后缀如:0th, 1st, 2nd等的一个月之中的第几天 |
%d |
如果是1 个数字(小于10 ),那么一个月之中的第几天表示为加前导加0 , 如:00, 01,02, …31 |
%e |
没有前导零的月份的日子,例如:1,2,… 31 |
%f |
微秒,范围在000000..999999 |
%H |
24小时格式的小时,前导加0 ,例如:00,01..23 |
%h |
小时,12小时格式,带前导零,例如:01,02 … 12 |
%I |
与%h 相同 |
%i |
分数为零,例如:00,01,… 59 |
%j |
一年中的的第几天,前导为0 ,例如,001,002,… 366 |
%k |
24小时格式的小时,无前导零,例如:0,1,2 … 23 |
%l |
12小时格式的小时,无前导零,例如:0,1,2 … 12 |
%M |
月份全名称,例如:January, February,…December |
%m |
具有前导零的月份名称,例如:00,01,02,… 12 |
%p |
AM 或PM ,取决于其他时间说明符 |
%r |
表示时间,12 小时格式hh:mm:ss AM 或PM |
%S |
表示秒,前导零,如:00,01,… 59 |
%s |
与%S 相同 |
%T |
表示时间,24小时格式hh:mm:ss |
%U |
周的第一天是星期日,例如:00,01,02 … 53时,前导零的周数 |
%u |
周的第一天是星期一,例如:00,01,02 … 53时,前导零的周数 |
%V |
与%U 相同,它与%X 一起使用 |
%v |
与%u 相同,它与%x 一起使用 |
%W |
工作日的全称,例如:Sunday, Monday,…, Saturday |
%w |
工作日,以数字来表示(0 = 星期日,1 = 星期一等) |
%X |
周的四位数表示年份,第一天是星期日; 经常与%V 一起使用 |
%x |
周的四位数表示年份,第一天是星期日; 经常与%v 一起使用 |
%Y |
表示年份,四位数,例如2000,2001,…等。 |
%y |
表示年份,两位数,例如00,01,…等。 |
%% |
将百分比(% )字符添加到输出 |
以下是一些常用的日期格式字符串
DATE_FORMAT字符串 |
格式化日期 |
%Y-%m-%d |
2017/4/30 |
%e/%c/%Y |
4/7/2013 |
%c/%e/%Y |
7/4/2013 |
%d/%m/%Y |
4/7/2013 |
%m/%d/%Y |
7/4/2013 |
%e/%c/%Y %H:%i |
4/7/2013 11:20 |
%c/%e/%Y %H:%i |
7/4/2013 11:20 |
%d/%m/%Y %H:%i |
4/7/2013 11:20 |
%m/%d/%Y %H:%i |
7/4/2013 11:20 |
%e/%c/%Y %T |
4/7/2013 11:20 |
%c/%e/%Y %T |
7/4/2013 11:20 |
%d/%m/%Y %T |
4/7/2013 11:20 |
%m/%d/%Y %T |
7/4/2013 11:20 |
%a %D %b %Y |
Thu 4th Jul 2013 |
%a %D %b %Y %H:%i |
Thu 4th Jul 2013 11:20 |
%a %D %b %Y %T |
Thu 4th Jul 2013 11:20:05 |
%a %b %e %Y |
Thu Jul 4 2013 |
%a %b %e %Y %H:%i |
Thu Jul 4 2013 11:20 |
%a %b %e %Y %T |
Thu Jul 4 2013 11:20:05 |
%W %D %M %Y |
Thursday 4th July 2013 |
%W %D %M %Y %H:%i |
Thursday 4th July 2013 11:20 |
%W %D %M %Y %T |
Thursday 4th July 2013 11:20:05 |
%l:%i %p %b %e, %Y |
7/4/2013 11:20 |
%M %e, %Y |
4-Jul-13 |
%a, %d %b %Y %T |
Thu, 04 Jul 2013 11:20:05 |
Day()
返回一个日期的天数部分
1
| SELECT DAY("2021-09-17 10:34:11");
|
DayOfWeek()
对于一个日期,返回对应的星期几,从1到7,表示星期日到星期六
1
| SELECT DAYOFWEEK("2021-09-17 10:34:11");
|
Hour()
返回一个时间的小时部分
1
| SELECT HOUR("2021-09-17 10:34:11");
|
Minute()
返回一个时间的分钟部分
1
| SELECT MINUTE("2021-09-17 10:34:11");
|
Month()
返回一个日期的月份部分
1
| SELECT MONTH("2021-09-17 10:34:11");
|
Now()
返回当前日期和时间
Second()
返回一个时间的秒部分
1
| SELECT SECOND("2021-09-17 10:34:11");
|
Time()
返回一个日期时间的时间部分
1
| SELECT TIME("2021-09-17 10:34:11");
|
Year()
返回一个日期的年份部分
1
| SELECT YEAR("2021-09-17 10:34:11");
|
数值处理函数
常用函数
函数 |
说明 |
Abs() |
返回一个数的绝对值 |
Cos() |
返回一个角度的余弦 |
Exp() |
返回一个数的指数值 |
Mod() |
返回除操作的余数 |
Pi() |
返回圆周率 |
Rand() |
返回一个随机数 |
Sin() |
返回一个角度的正弦 |
Sqrt() |
返回一个数的平方根 |
Tan() |
返回一个角度的正切 |
实例
Abs()
返回一个数的绝对值
Cos()
返回一个角度的余弦
Exp()
返回一个数的指数值,即:e的多少次方,e约等于2.718281828
Mod()
返回除操作的余数,前面参数除以后面的参数
Pi()
返回圆周率
Rand()
返回一个随机数,产生一个在 0 和 1 之间的随机数
Sin()
返回一个角度的正弦
Sqrt()
返回一个数的平方根
Tan()
返回一个角度的正切