函数 | 功能 |
CURDATE() | 返回当前日期,只有年月日 |
CURTIME() | 返回当前时间,只有时分秒 |
NOW() | 返回当前日期和时间 年月日+时分秒 |
YEAR(date) | 获取指定date的年份 |
MONTH(date) | 获取指定date的月份 |
DAY(date) | 获取指定date的日期 |
DATE_ADD(date,INTERVAL expr type) | 返回一个日期、时间值加上一个时间间隔expr后的时间值 |
DATEDIFF(date1,date2) | 返回起始时间date1和结束时间date2之间的天数 |
1、CURDATE();
select CURDATE();
2、CURTIME()
select CURTIME();
3、NOW();
select NOW();
4、YEAR(date);
select YEAR('2024-01-18');
select YEAR(now());
5、MONTH(date);
select MONTH('2024-01-18');
select MONTH(now());
6、DAY(date);
mysql> select DAY('2024-01-18');
select DAY(now());
7、DATE_ADD(date,INTERVAL expr type);
select DATE_ADD(now(), INTERVAL 70 DAY);
select DATE_ADD(now(), INTERVAL 70 MONTH);
select DATE_ADD(now(), INTERVAL 70 YEAR);
8、DATEDIFF(date1,date2);
select DATEDIFF(now(), '2023-01-04');
select DATEDIFF('2024-01-10', '2023-01-04');
案例:查询所有员工的入职天数,并根据入职天数倒序排序
select name, DATEDIFF(CURDATE(),ENTRY_DATE) days from emp order by days desc;
CREATE TABLE `emp` (
`ID` int DEFAULT NULL COMMENT '编号',
`workno` varchar(10) DEFAULT NULL,
`name` varchar(10) DEFAULT NULL,
`GENDER` char(1) DEFAULT NULL COMMENT '性别',
`AGE` tinyint unsigned DEFAULT NULL COMMENT '年龄',
`ID_CARD` char(18) DEFAULT NULL COMMENT '身份证号',
`WORK_ADDRESS` varchar(50) DEFAULT NULL COMMENT '工作地址',
`ENTRY_DATE` date DEFAULT NULL COMMENT '入职时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='员工表'