数学函数
1、ROUND 四舍五入
SELECT ROUND(1.65);
SELECT ROUND(-1.5); #不管正数负数,先把绝对值四舍五入了,再添加正负号
SELECT ROUND(1.567, 2); #小数点后保留两位进行四舍五入
2、CEIL 向上取整 返回 >= 该参数的最小整数
SELECT CEIL(0.0021); # 1
SELECT CEIL(-0.2); # 0
3、FLOOR 向下取整 返回小于等于该参数的最大整数
SELECT FLOOR(0.0021); # 0
SELECT FLOOR(-0.002); # -1
4、TRUNCATE 截断 小数点后保留几位
SELECT TRUNCATE(1.699999, 1);
5、MOD 取余 结果的符号取决于被除数
SELECT MOD(10, 3);
SELECT MOD(10, -3);
SELECT MOD(-10, 3);
6、RAND 获取随机数,返回0-1之间的小数(无限接近于1)
SELECT RAND()
日期函数
1、NOW 返回当前系统日期和时间
SELECT NOW();
2、CURDATE 返回系统当前日期
SELECT CURDATE();
3、CURTIME 返回系统当前时间
SELECT CURTIME();
4、可以获取指定的部分,年、月、日、小时、分钟、秒
SELECT YEAR(NOW()) 年;
SELECT MONTH(NOW()) 月;
SELECT DAY(NOW()) 日;
SELECT YEAR('1998-1-1');
SELECT MONTHNAME(now());
5、STR_TO_DATE 将日期格式的字符串转换为相应日期
SELECT STR_TO_DATE('99-9-13', '%y-%m-%d');
查询入职日期为1992年4月3号的员工信息
SELECT * FROM employees WHERE hiredate = STR_TO_DATE('1992-4-3', '%Y-%m-%d');
6、DATE_FORMAT 按指定格式将日期转换成字符串
SELECT DATE_FORMAT('2018/6/6', '%Y年%m月%d日')
查询有奖金的员工名和如入职日期(xx月/xx日 xx年)
SELECT last_name, DATE_FORMAT(hiredate,'%m月%d日 %Y年') 入职日期 FROM employees WHERE commission_pct IS NOT NULL;
序号 | 格式符 | 功能 |
---|---|---|
1 | %Y | 四位的年份 |
2 | %y | 两位的年份 |
3 | %m | 月份(01,02…11,12) |
4 | %c | 月份(1, 2,…11,12) |
5 | %d | 日(01, 02,…) |
6 | %H | 小时(24小时制) |
7 | %h | 小时(12小时制) |
8 | %i | 分钟(00, 01…59) |
9 | %s | 秒(00,01,…59) |
其他函数
1、查看当前版本
SELECT VERSION();
2、查看当前数据库
SELECT DATABASE();
3、查看当前用户
SELECT USER();