【0基础学习mysql】之日期函数和流程函数

2022-11-20 10:52:09 浏览数 (2)

个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主

​ 特别标注:仅为自己的学习记录笔记,方便复习和加深记忆,仅供借鉴参考!

目录

 日期函数

常见的日期函数表

CURDATE()/CURTIME()/NOW()

 YEAR(date)/MONTH(date)/DAY(date)

 DATE_ADD(date,INTERVAL expr type)/DATEDIFF(date1,date2)

流程函数 

IF(value,t,f)

 IFNULL(value1,value2)

 CASE WHEN [vall] THEN [res1]...ELSE[default] END

​编辑 CASE[expr] WHEN [vall] THEN [res1]...ELSE[default] END

 CASE WHEN [vall] THEN [res1]...ELSE[default] END和CASE[expr] WHEN [vall] THEN [res1]...ELSE[default] END的区别


 日期函数

常见的日期函数表

函数

功能

CURDATE()

返回当前日期

CURTIME()

返回当前时间

NOW()

返回当前日期和时间

YEAR(date)

获取指定date的年份

MONTH(date)

获取指定date的月份

DAY(date)

获取指定date的天份

DATE_ADD(date,INTERVAL expr type)

返回一个日期/时间加上一个时间间隔expr后的时间值

DATEDIFF(date2,date1)

返回起始detel1和结束date2之间的天数(date2-date1)

CURDATE()/CURTIME()/NOW()

代码

select curdate();select curtime();select time();

执行结果

 YEAR(date)/MONTH(date)/DAY(date)

代码

select year(now());select month(now()); select day(now());

执行结果

 DATE_ADD(date,INTERVAL expr type)/DATEDIFF(date1,date2)

代码

select date_add(now(),interval 99 day);select datediff('2022-12-12','2021-12-12');

执行结果

流程函数 

函数

功能

IF(value,t,f)

如果value为true,则返回t,否则返回f

IFNULL(value1,value2)

如果value1不为空,返回value1,否则返回value2

CASE WHEN [vall] THEN [res1]...ELSE[default] END

如果vall为true,返回res1,...否则返回default默认值

CASE[expr] WHEN [vall] THEN [res1]...ELSE[default] END

如果expr的值等于vall,返回res1,否则返回default默认值

IF(value,t,f)

代码

select if(true,"yes","no");/select if(false,"yes","no");

执行结果

 IFNULL(value1,value2)

判断value1是否为空,不为空返回value1,为空返回value2

代码

select ifnull('OK','default');/select ifnull(null,'default');

执行结果

 CASE WHEN [vall] THEN [res1]...ELSE[default] END

 原始数据

代码

代码语言:javascript复制
select name, (case WHEN age>=65 THEN '老年' ELSE '青年' END) from user;

执行结果

 CASE[expr] WHEN [vall] THEN [res1]...ELSE[default] END

代码

代码语言:javascript复制
select name, (case age WHEN 18 THEN '刚成年' ELSE '非刚成年' END) from user;

执行结果

 CASE WHEN [vall] THEN [res1]...ELSE[default] END和CASE[expr] WHEN [vall] THEN [res1]...ELSE[default] END的区别

前者更倾向于划分一个范围,而后者更加精确到某个值

各位学习mysql的朋友可以联系我,互相讨论,一起进步!!!

0 人点赞