时间函数

Tue 23 September 2025

时间函数 目录 1. 基础用法 1.1 NOW() 1.2 CURDATE() 1.3 CURTIME() 1.4 DATE() 1.5 EXTRACT() 1.6 DATE_ADD、DATE_SUB 1.7 ADDDATE、SUBDATE 1.8 DATEDIFF 1.9 TIMESTAMPDIFF 1.10 DATE_FORMAT 1.11 STR_TO_DATE 1.12 LAST_DAY 2. 组合用法 2.1 获取当月最后一天 2.2 获取当月第一天 2.3 获取当月第几日 2.4 获取下个月第一天 2.5 获取下个月最后一天 2.6 获取上个月第一天 2.7 获取上个月最后一天 2.8 获取当月的天数 2.9 获取上个月的天数 2.10 获取下个月的天数 2.11 当日时间范围 1. 基础用法 1.1 NOW() SELECT NOW();

输出 2022-05-14 13:26:49

1.2 CURDATE() SELECT CURDATE();

输出 2022-05-14

1.3 CURTIME() SELECT CURTIME();

输出 13:28:39

1.4 DATE() 提取时间的日期部分

SELECT DATE(NOW());

输出 2022-05-14

1.5 EXTRACT() 返回时间的指定部分的值

SELECT EXTRACT(YEAR FROM NOW()), EXTRACT(MONTH FROM NOW()), EXTRACT(DAY FROM NOW());

输出 2022 5 14

1.6 DATE_ADD、DATE_SUB 在指定时间上增加/减少指定日期,具体类型有year,month,day等

SELECT DATE_ADD(NOW(), 1);

输出 2022-05-15 14:05:01

SELECT DATE_SUB(NOW(), INTERVAL 1 DAY);

输出 2022-05-13 14:05:30

1.7 ADDDATE、SUBDATE SELECT ADDDATE(NOW(), INTERVAL 1 DAY);

输出 2022-05-15 14:05:01

SELECT SUBDATE(NOW(), 1);

输出 2022-05-13 14:05:30

1.8 DATEDIFF DATEDIFF计算两个日期之间间隔的天数,(时分秒不参与计算)

SELECT DATEDIFF('2022-05-05', '2022-05-01');

输出 4

1.9 TIMESTAMPDIFF 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

SELECT TIMESTAMPDIFF(HOUR, '2022-05-01 00:00:00', '2022-05-01 23:59:59');

输出 23

SELECT TIMESTAMPDIFF(MINUTE, '2022-05-01 00:00:00', '2022-05-01 00:20:00');

输出 20

SELECT TIMESTAMPDIFF(DAY, '2022-05-01 00:00:00', '2022-05-02 23:59:59');

输出 1

SELECT TIMESTAMPDIFF(MONTH, '2022-05-01 00:00:00', '2022-06-02 23:59:59');

输出 1

1.10 DATE_FORMAT SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');

输出 2022-05-14

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %T');

输出 2022-05-14 13:45:14

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %T.%f');

输出 2022-05-14 13:47:00.000000

周的天 (0=星期日, 6=星期六)

SELECT DATE_FORMAT(NOW(), '%w'); 1.11 STR_TO_DATE SELECT STR_TO_DATE('2022-05-14 13:50:35', '%Y-%m-%d %H:%i:%s'); SELECT STR_TO_DATE('2022-05-14 13:50:35', '%Y-%m-%d %T');

输出 2022-05-14 13:50:35

SELECT STR_TO_DATE('2022-05-14 13:50:35', '%Y-%m-%d');

输出 2022-05-14

1.12 LAST_DAY

获取当月最后一天

SELECT LAST_DAY(NOW());

输出 2022-05-31

  1. 组合用法 2.1 获取当月最后一天 SELECT LAST_DAY(NOW());

输出 2022-05-31

2.2 获取当月第一天

当前时间 2022-05-14 14:08:46

SELECT SUBDATE(CURDATE(), DAY(CURDATE()) - 1); SELECT ADDDATE(LAST_DAY(SUBDATE(NOW(), INTERVAL 1 MONTH)), 1);

输出 2022-05-01

2.3 获取当月第几日

当前时间 2022-05-14 14:08:46

SELECT DAY(CURDATE());

输出 14

2.4 获取下个月第一天

当前时间 2022-05-14 14:08:46

SELECT ADDDATE(LAST_DAY(NOW()), 1);

输出 2022-06-01

2.5 获取下个月最后一天

当前时间 2022-05-14 14:08:46

SELECT LAST_DAY(ADDDATE(LAST_DAY(NOW()), 1));

输出 2022-06-30

2.6 获取上个月第一天

当前时间 2022-05-14 14:08:46

SELECT ADDDATE(LAST_DAY(SUBDATE(NOW(), INTERVAL 2 MONTH)), 1);

输出 2022-04-30

2.7 获取上个月最后一天

当前时间 2022-05-14 14:08:46

SELECT LAST_DAY(SUBDATE(NOW(), INTERVAL 1 MONTH));

输出 2022-04-30

2.8 获取当月的天数

当前时间 2022-05-14 14:08:46

SELECT DAY(LAST_DAY(NOW()));

输出 31

2.9 获取上个月的天数

当前时间 2022-05-14 14:08:46

SELECT DAY(LAST_DAY(SUBDATE(NOW(), INTERVAL 1 MONTH)));

输出 30

2.10 获取下个月的天数

当前时间 2022-05-14 14:08:46

SELECT DAY(LAST_DAY(ADDDATE(LAST_DAY(NOW()), 1)));

输出 30

2.11 当日时间范围 SELECT STR_TO_DATE('2022-05-01', '%Y-%m-%d %H:%i:%s');

输出 2022-05-01 00:00:00

SELECT STR_TO_DATE(CONCAT('2022-05-01', '23:59:59'), '%Y-%m-%d %H:%i:%s');

输出 2022-05-01 23:59:59

SELECT STR_TO_DATE(CURDATE(), '%Y-%m-%d %H:%i:%s');

输出 2022-05-14 00:00:00

SELECT STR_TO_DATE(CONCAT(CURDATE(), '23:59:59'), '%Y-%m-%d %H:%i:%s');

输出 2022-05-14 23:59:59

Category: 编程mysql