基础的天数加减
-- 昨天
SELECT DATE_ADD(CURDATE(), INTERVAL -1 DAY);
SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY);
-- 今天
SELECT CURDATE();
SELECT CURRENT_DATE;
-- 明天
SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);
SELECT DATE_SUB(CURDATE(), INTERVAL -1 DAY);
-- 年月日 时分秒 (我这里分钟与电脑的时间有误差)
SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());
-- 日期,时间
SELECT DATE(NOW()), TIME(NOW());
-- 日期格式化
SELECT DATE_FORMAT('2019-12-31 23:59:59','%Y-%m-%d %H:%i:%s');
-- 日期是否在今天之内
SELECT '2019-03-14 11:59:59' BETWEEN CURDATE() and DATE_ADD(CURDATE(), INTERVAL 86399 SECOND);
- 除了按天加减还可以按以下类型计算,没翻译的都是看不懂的
Type | 中文 |
---|---|
MICROSECOND | 微秒 |
SECOND | 秒 |
MINUTE | 分钟 |
HOUR | 小时 |
DAY | 天 |
WEEK | 周 |
MONTH | 月 |
QUARTER | 一季度 |
YEAR | 年 |
SECOND_MICROSECOND | |
MINUTE_MICROSECOND | |
MINUTE_SECOND | |
HOUR_MICROSECOND | |
HOUR_SECOND | |
HOUR_MINUTE | |
DAY_MICROSECOND | |
DAY_SECOND | |
DAY_MINUTE | |
DAY_HOUR | |
YEAR_MONTH |
计算日期差值
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
-> 3
mysql> SELECT TIMESTAMPDIFF(YEAR,'2002-05-01','2001-01-01');
-> -1
mysql> SELECT TIMESTAMPDIFF(MINUTE,'2003-02-01','2003-05-01 12:05:55');
-> 128885