赞
踩
哈罗,各位小伙伴大家好,又见面了,我还是那个不吃饱不干活的小尘,欢迎来到本期的SQL语言之日期函数部分,让我们一起进入知识的海洋吧~
日期函数是指参数类型为日期类型,用于对日期处理或返回日期的函数。
用于返回当前系统日期+时间。
认识:
我们可以看见,NOW函数内部没有参数。
我们可以输出结果,结果显示的和当前系统时间和日期是一致的。
返回当前系统日期,不包含时间。
认识:
同样,CURDATE函数也没有参数。
我们来看一下结果:
返回当前时间,不包含日期。
认识:
CURTIME函数同样也不需要输入参数。
看一下结果:
获取指定的部分,年、月、日、小时、分钟、秒。
这里先介绍年。
认识:
我们可以看到,YEAR里面的参数要放进日期,可以用NOW来获取,或者传进一个带有日期的字段。
<1>若我们用NOW来获取,可以这样写:
- SELECT
- YEAR(NOW());
我们看一下结果:
<2>若我们传入日期常量值,可以这样写:
<3>我们之前员工表里面有一个“入职时间” ,在这里我们可以做一个小案例:
将员工入职时间显示。
代码:
- select
- year(hiredate) as 年
- from
- employees;
结果展示:
获取指定的月份。
认识:
和YEAR函数一样,MONTH函数同样需要传入一个参数:日期。
同样,我们可以通过NOW函数获取。
<1> 通过NOW函数获取日期,可以这样写:
代码:
- SELECT
- MONTH(NOW()) 月;
结果展示:
<2> 可以让月份显示为英文
用MONTHNAME即可实现。
代码:
- SELECT
- MONTHNAME(NOW());
结果展示:
当然,还可以显示日,小时,分钟,秒,只需要换一下函数名即可,就不做过多介绍了。
将日期格式的字符转换成指定格式的日期。
我们看函数名是非常形象的,string(字符)to(转换为)date(日期)。
当然,这里的字符需要合法才行。
认识:
我们可以看见,STR_TO_DATE函数里面有两个参数:字符和格式。
比如:
STR_TO_DATE('9-13-1999','%m-%d-%Y');
给一个日期“9-13-1999”,按照“%m-%d-%Y”这种格式去解析它,然后最终返回一个日期类型。
因为当你写入这一串字符的时候,SQL解析器并不知道哪些是年,哪些是月,哪些是日。
所以“%m-%d-%Y”是去告诉SQL解析器第一个数字是月份,第二个是日子,第三个是年份。然后编译器会按照默认的“年-月-日”输出相对应的数字即“1999-09-13”。
那格式怎么写?且看下图:
举例:
<1> 简单的输出
<2> 查询员工表里面入职日期为1992-4-3的员工信息。
其实,系统默认的格式是“年-月-日”,所以如果本来就是按照年月日顺序来写的话,是可以直接输出的。
如下面这种情况:
- SELECT
- *
- FROM
- employees
- WHERE
- hiredate='1992-4-3';
结果展示:
但是,往往在实际业务中,我们需要根据用户输入的值来进行筛选。
比如,在WEB页面中,我们可能会要求用户输入对应的日期,然后根据他输入的日期进行筛选。
我们知道,用户输入的日期在后台返回的是一个字符串。同样,用户输入的顺序不一定是“年-月-日”。
比如,最终拿到的值可能是这样的: ‘4-3-1992’,当我们那这样的值去筛选,会发现找不到了。
结果展示:
这样的情况,就需要我们进行一个转换啦!
这样写:
- select
- *
- from
- employees
-
- where
- hiredate=STR_TO_DATE('4-3-1992','%m-%d-%Y');
结果展示:
总结
STR_TO_DATE函数是将字符通过指定的格式转换成日期。
将日期转换成字符。
认识:
如图,我们看到,DATE_FROMAT有两个参数:日期和格式转换。
比如:
DATE_FORMAT('2018/6/6','%Y年%m月%d日');
给它一个这样的日期“2018/6/6”,最终返回“%Y年%m月%d日”这样的效果。
同样转换格式遵循上面表格的功能!
举例:
<1> 我们可以用NOW函数来获取当前系统日期,用“%y年%m月%d日”这种格式来返回。
<2> 查询员工表中有奖金的员工名和入职日期(按照这种格式输出:xx月/xx日 xx年)
代码:
- select
- last_name,
- date_format(hiredate,'%m月/%d日 %y年') 入职日期
- from
- employees
- where
- commission_pct is not null;
结果展示:
这个用的比较少,我们随便介绍几个。
输出版本号。
查看当前数据库。
查看当前用户。
其他函数先说这些,以后用到了再说吧。
好啦,这次的分享就到这儿啦
MYSQL系列持续更新中,欢迎订阅
我是小尘,咱们下次不见不散~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。