MYSQL必知必会笔记:第十一章使用数据处理函数
文章目录
- 文本处理函数
- 日期和时间处理函数
- 格式
- Date()
- 日期区间:
- 数值处理函数
文本处理函数
- Left() 返回串左边的字符
- Length() 返回串的长度
- Locate() 找出串的一个子串
- Lower() 将串转换为小写
- LTrim() 去掉串左边的空格
- Right() 返回串右边的字符
- RTrim() 去掉串右边的空格
- Soundex() 返回串的SOUNDEX值
- SubString() 返回子串的字符
- Upper() 将串转换为大写
日期和时间处理函数
- AddDate() 增加一个日期(天、周等)
- AddTime() 增加一个时间(时、分等)
- CurDate() 返回当前日期
- CurTime() 返回当前时间
- Date() 返回日期时间的日期部分
- DateDiff() 计算两个日期之差
- Date_Add() 高度灵活的日期运算函数
- Date_Format() 返回一个格式化的日期或时间串
- Day() 返回一个日期的天数部分
- DayOfWeek() 对于一个日期,返回对应的星期几
- Hour() 返回一个时间的小时部分
- Minute() 返回一个时间的分钟部分
- Month() 返回一个日期的月份部分
- Now() 返回当前日期和时间
- Second() 返回一个时间的秒部分
- Time() 返回一个日期时间的时间部分
- Year() 返回一个日期的年份部分
格式
MySql不管是插入或更新表值还是用WHERE子句进行过滤
日期格式必须为 yyyy-mm-dd
Date()
在where查询日期的时候必须使用Date() 函数
Date(order_date)指示MySQL仅提取列的日期部分
尽量使用:
select *
from orders
where Date(order)='2005-09-01'
避免使用:
select *
from orders
where order='2005-09-01'
日期区间:
日期区间使用between and
select *
from orders
where Date(order) between'2005-09-01' and '2005-09-10'
分析:
BETWEEN操作符用来把2005-09-01和2005-09-10定义为 一个要匹配的日期范围。
一种不需要记住每个月中有多少天或不需要操心闰年2月的办法
select *
from orders
where Year(order) between'2005' and Month(order) =9
Year()是一个从日期(或日期时间中返回年份的函数
Month()从日期中返回月份
Month()从日期中返回月份检索出order_date为2005年9月的 所有行
补充:
以下示例返回2018-01-15的当天的日期:
mysql> SELECT DAY('2018-01-15');
+-------------------+
| DAY('2018-01-15') |
+-------------------+
| 15 |
+-------------------+
1 row in set
要根据指定的日期获取一个月中的天数,您可以组合LAST_DAY和DAY函数,如以下示例所示:
mysql> SELECT DAY(LAST_DAY('2018-02-03'));
+-----------------------------+
| DAY(LAST_DAY('2018-02-03')) |
+----------------------------
| 28 |
+-----------------------------+
1 row in set
LAST_DAY函数返回一月的最后一天,例如2016-02-29,DAY函数返回最后一天的那个月的日期,也就是该月份的天数。
数值处理函数
- Abs() 返回一个数的绝对值
- Cos() 返回一个角度的余弦
- Exp() 返回一个数的指数值
- Mod() 返回除操作的余数
- Pi() 返回圆周率
- Rand() 返回一个随机数
- Sin() 返回一个角度的正弦
- Sqrt() 返回一个数的平方根
- Tan() 返回一个角度的正切