持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情
日期函数
curtime:当前时间
select curtime();
now:当前日期和时间
select now();
YEAR , MONTH , DAY:当前年
select YEAR(now());
YEAR , MONTH , DAY:当前月
select MONTH(now());
YEAR , MONTH , DAY:当前日
select DAY(now());
datediff:获取两个日期相差的天数
select datediff('2022-11-01', '2022-10-01');
案例:
- 查询所有员工的入职天数,并根据入职天数倒序排序。 思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。
流程函数
- 流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。
| 函数 | 功能 |
|---|---|
| IF(value , t , f) | 如果value为true,则返回t,否则返回f |
| IFNULL(value1 , value2) | 如果value1不为空,返回value1,否则返回value2 |
| CASE WHEN [ val1 ] THEN [res1] ...ELSE [ default ] END | 如果val1为true,返回res1,... 否则返回default默认值 |
| CASE [ expr ] WHEN [ val1 ] THEN[res1] ... ELSE [ default ] END | 如果expr的值等于val1,返回res1,... 否则返回default默认值 |
演示如下:
if
select if(true, 'Ok', 'Error');select if(false, 'Ok', 'Error');
ifnull
select ifnull('Ok','Default');
select ifnull('','Default');
select ifnull(null,'Default');