第十一章 使用数据处理函数
函数
Upper()将文本转换为大写
Lower()将串转为小写
SELECT vend_name,Upper(vend_name)
FROM vendors
ORDER BY vend_name;
SELECT vend_name,Lower(vend_name)
FROM vendors
ORDER BY vend_name;
Left(字符串,数组) 返回串左边的字符
Right(字符串,数组) 返回串右边的字符
SELECT Left('一二三四',2)
Length() 返回串的长度
SELECT Length('一'),Length('1'),Length('a'),Length('a一1')
Locate()找出一个串的子串,返回子串的起始位置
SELECT Locate('12','323123'),
Locate('1','32121'),
Locate('a','a')
Soundex()返回串的SOUNDEX值(转换为发音)
SELECT cust_name,cust_contact
FROM customers
WHERE Soundex(cust_contact) = Soundex('Y Lie')
Y Lie 和Y Lee匹配
日期和时间处理函数
函数 | 说明 |
---|---|
Now() | 返回当前日期时间 |
CurDate | 返回当前日期 |
CurTime | 返回当前时间 |
Data() | 返回日期部分 |
Year() | 返回年部分 |
Month() | 返回月部分 |
Day | 返回日部分 |
DayOfWeek() | 对于一个日期返回对应星期几 |
Time | 返回时间部分 |
Hour() | 返回小时部分 |
Minute() | 返回分钟部分 |
Second | 返回秒部分 |
修改时间:AddDate(date,INTERVAL expr unit)
修改时间:Date_Add(date,INTERVAL expr unit)
含义:date时间,expr 表达式值,unit表达式对应的时间单位
unit : SECOND,MINUTE,HOUR,DAY,MONTH,YEAR
SELECT ADDDATE(NOW(),INTERVAL -60 SECOND)
SELECT ADDDATE('2020-2-23',INTERVAL -1 MINUTE)
SELECT ADDDATE(NOW(),INTERVAL -1 HOUR)
SELECT ADDDATE(NOW(),INTERVAL -1 DAY)
SELECT ADDDATE(NOW(),INTERVAL -1 MONTH)
SELECT ADDDATE(NOW(),INTERVAL -1 YEAR)
AddTime(time,expr) 函数用于执行时间的加法运算
含义:time 是一个时间或日期时间表达式,expr 是一个时间表达式
SELECT ADDTIME('12:30:00','1:30:30')
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据
格式 | 描述 |
---|---|
%Y | 年,4 位 |
%y | 年,2 位 |
%M | 月名 |
%b | 缩写月名 |
%c | 月,数值 |
%m | 月,数值(00-12) |
%D | 带有英文前缀的月中的天 |
%d | 月的天,数值(00-31) |
%e | 月的天,数值(0-31) |
%W | 星期名 |
%a | 缩写星期名 |
%T | 时间, 24-小时 (hh:mm:ss) |
%r | 时间,12-小时(hh:mm:ss AM 或 PM) |
%p | AM 或 PM |
%H | 小时 (00-23) |
%k | 小时 (0-23) |
%h | 小时 (01-12) |
%I | 小时 (01-12) |
%i | 分钟,数值(00-59) |
%S | 秒(00-59) |
%s | 秒(00-59) |
%f | 微秒 |
SELECT DATE_FORMAT(NOW(),'%y %m %d %h:%i %p'),
DATE_FORMAT(NOW(),'%Y-%M-%D %W %H:%I:%s'),
DATE_FORMAT(NOW(),'%W %b %y'),
DATE_FORMAT(NOW(),'%d %b %Y %T:%f')
SELECT cust_id,order_num,order_date
FROM orders
WHERE order_date = '2005-09-01';
仅匹配’2005-09-01 00:00:00’时间
//查询9月份
SELECT cust_id,order_num,order_date
FROM orders
WHERE Date(order_date) BETWEEN '2005-09-01' AND '2005-09-31';
//另一种写法
SELECT cust_id,order_num,order_date
FROM orders
WHERE Year(order_date) =2005 AND Month = 9;
数值处理函数
函数 | 说明 |
---|---|
Abs() | 绝对值 |
Cos() | 余弦 |
Sin() | 正弦 |
Tan() | 正切 |
Mod() | 返回除操作的余数 |
Sqrt() | 返回一个数的平方根 |
Rand() | 随机数 |
Pi() | 圆周率 |
SELECT Mod(9,4),Rand(),Sqrt(9),Abs(-3),pi()
第十二章汇总数据
聚集函数
运行在行组上,计算和返回单个值的函数
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 最大值 |
MIX() | 最小值 |
SUM() | 和 |
SELECT AVG(prod_price),COUNT(*),MAX(prod_price),MIN(prod_price),SUM(prod_price)
FROM products