函数
日期与时间函数
NOW()和SYSDATE()函数的作用相同,返回当前日期和时间值。
#示例
SELECT NOW(),SYSDATE();
#结果
+---------------------+---------------------+
| NOW() | SYSDATE() |
+---------------------+---------------------+
| 2020-10-18 10:55:26 | 2020-10-18 10:55:26 |
+---------------------+---------------------+
CURDATE函数和CURRENT_DATE函数
CURDATE函数和CURRENT_DATE函数的作用相同
#示例
SELECT CURDATE(),CURRENT_DATE(),CURRENT_DATE()+0;
#结果
+------------+----------------+------------------+
| CURDATE() | CURRENT_DATE() | CURRENT_DATE()+0 |
+------------+----------------+------------------+
| 2020-10-18 | 2020-10-18 | 20201018 |
+------------+----------------+------------------+
CURTIME函数和CURRENT_TIME函数
CURTIME函数和CURRENT_TIME函数作用相同
#示例
SELECT CURTIME(),CURRENT_TIME(),CURRENT_TIME()+0;
#结果:
+-----------+----------------+------------------+
| CURTIME() | CURRENT_TIME() | CURRENT_TIME()+0 |
+-----------+----------------+------------------+
| 12:26:50 | 12:26:50 | 122650 |
+-----------+----------------+------------------+
DAYOFWEEK函数和WEEKDAY函数
DAYOFWEEK(d)函数返回d对应的一周中的索引。
WEEKEND(d)返回d对应的工作日索引。
#示例
SELECT DAYOFWEEK('2020-10-18'),WEEKDAY('2020-10-18');
#结果
+-------------------------+-----------------------+
| DAYOFWEEK('2020-10-18') | WEEKDAY('2020-10-18') |
+-------------------------+-----------------------+
| 1 | 6 |
+-------------------------+-----------------------+
DAYOFMONTH函数和DAYOFYEAR函数
DAYOFMONTH(d)函数返回d是一个月中的第几天,范围为1~31。
DAYOFYEAR(d)函数返回d是一年中的第几天,范围为1~366。
#示例
SELECT DAYOFMONTH('2020-10-18'),DAYOFYEAR('2020-10-18');
#结果
+--------------------------+-------------------------+
| DAYOFMONTH('2020-10-18') | DAYOFYEAR('2020-10-18') |
+--------------------------+-------------------------+
| 18 | 292 |
+--------------------------+-------------------------+
MONTH函数和MONTHNAME函数
MONTH(date)函数返回date对应的月份,范围1~12。
MONTHNAME(date)函数返回指定date对应的月份的英文全名。
#示例
SELECT MONTH('2020-10-18'),MONTHNAME('2020-10-18');
#结果
+---------------------+-------------------------+
| MONTH('2020-10-18') | MONTHNAME('2020-10-18') |
+---------------------+-------------------------+
| 10 | October |
+---------------------+-------------------------+
DATEDIFF函数
DATEDIFF(date1,date2)返回起始时间date1和结束时间date2之间的天数。date1和date2为日期或date-and-time表达式。计算时只用到这些值的日期部分。
#示例
SELECT DATEDIFF('2020-10-18','2020-10-25') AS COL1,
DATEDIFF('2020-10-18','2020-11-20') AS COL2;
#结果
+------+------+
| COL1 | COL2 |
+------+------+
| -7 | -33 |
+------+------+
ADDDATE函数
ADDDATE(date,INTERVAL expr type)函数执行日期的加运算。
#示例
SELECT ADDDATE('2020-10-18 10:20:40',INTERVAL 1 SECOND) AS COL1,
ADDDATE('2020-10-18 10:20:40',INTERVAL '1:1' MINUTE_SECOND) AS COL2;
#结果
+---------------------+---------------------+
| COL1 | COL2 |
+---------------------+---------------------+
| 2020-10-18 10:20:41 | 2020-10-18 10:21:41 |
+---------------------+---------------------+
DATE_FORMAT函数
DATE_FORMAT(date,format)函数根据format指定的格式显示date值。
格式 | 描述 |
---|---|
%a | 缩写星期名 |
%b | 缩写月名 |
%c | 月,数值 |
%D | 带有英文前缀的月中的天 |
%d | 月的天,数值(00-31) |
%e | 月的天,数值(0-31) |
%f | 微秒 |
%H | 小时 (00-23) |
%h | 小时 (01-12) |
%I | 小时 (01-12) |
%i | 分钟,数值(00-59) |
%j | 年的天 (001-366) |
%k | 小时 (0-23) |
%l | 小时 (1-12) |
%M | 月名 |
%m | 月,数值(00-12) |
%p | AM 或 PM |
%r | 时间,12-小时(hh:mm:ss AM 或 PM) |
%S | 秒(00-59) |
%s | 秒(00-59) |
%T | 时间, 24-小时 (hh:mm:ss) |
%U | 周 (00-53) 星期日是一周的第一天 |
%u | 周 (00-53) 星期一是一周的第一天 |
%V | 周 (01-53) 星期日是一周的第一天,与 %X 使用 |
%v | 周 (01-53) 星期一是一周的第一天,与 %x 使用 |
%W | 星期名 |
%w | 周的天 (0=星期日, 6=星期六) |
%X | 年,其中的星期日是周的第一天,4 位,与 %V 使用 |
%x | 年,其中的星期一是周的第一天,4 位,与 %v 使用 |
%Y | 年,4 位 |
%y | 年,2 位 |
#示例
SELECT DATE_FORMAT('2020-10-18 10:20:30','%W %M %D %Y') AS COL1,
DATE_FORMAT('2020-10-18 10:20:30','%h:%i %p %M %D %Y') AS COL2;
#结果
+--------------------------+----------------------------+
| COL1 | COL2 |
+--------------------------+----------------------------+
| Sunday October 18th 2020 | 10:20 AM October 18th 2020 |
+--------------------------+----------------------------+
聚合函数
MAX()函数返回指定列中的最大值。
#示例
SELECT MAX(student_score)
AS MAX_score
FROM tb_student-score;
#结果
返回最大值
MIN函数
MIN函数返回查询列中的最小值。
#示例
SELECT MIN(student_score)
AS MIN_score
FROM tb_student-score;
#结果
返回最小值
COUNT函数
COUNT()函数统计数据表中包含的记录行的总数,或者根据查询结果返回列中包含的数据行数。
使用方法:
- COUNT(*)计算表中总的行数,无论某列有数值或者空值。
- COUNT(字段名)指定列下总行数,计算时将忽略空值的行。
#示例
SELECT COUNT(student_name)
AS students_number
FROM tb_student_score;
#结果返回总行数
SUM函数
SUM是一个求总和的函数,返回指定列值的总和。
#示例
SELECT SUM(student_score)
AS SCORE_SUM
FROM tb_student_score;
#结果返回学生成绩总和
AVG函数
AVG函数通过计算返回的行数和每一行数据的和,求得指定列数据的平均值。
#示例
SELECT AVG(student_score)
AS score_avg
FROM tb_student_score;
#结果返回所有同学的平均值