当前位置:   article > 正文

第八章、SQL语言学习之函数(日期函数篇)_sql month

sql month

 哈罗,各位小伙伴大家好,又见面了,我还是那个不吃饱不干活的小尘,欢迎来到本期的SQL语言之日期函数部分,让我们一起进入知识的海洋吧~   

一、日期函数

日期函数是指参数类型为日期类型,用于对日期处理或返回日期的函数。

(1)now

用于返回当前系统日期+时间。

认识:

 我们可以看见,NOW函数内部没有参数。

我们可以输出结果,结果显示的和当前系统时间和日期是一致的。

(2)curdate

返回当前系统日期,不包含时间。

认识:

同样,CURDATE函数也没有参数。

我们来看一下结果:

 

(3)curtime

 返回当前时间,不包含日期。

认识:

CURTIME函数同样也不需要输入参数。

看一下结果:

(4)year

获取指定的部分,年、月、日、小时、分钟、秒。

这里先介绍年。

认识:

 我们可以看到,YEAR里面的参数要放进日期,可以用NOW来获取,或者传进一个带有日期的字段。

<1>若我们用NOW来获取,可以这样写:

  1. SELECT
  2. YEAR(NOW());

我们看一下结果:


 

 <2>若我们传入日期常量值,可以这样写:

<3>我们之前员工表里面有一个“入职时间” ,在这里我们可以做一个小案例:

将员工入职时间显示。

代码:

  1. select
  2. year(hiredate) as
  3. from
  4. employees;

结果展示: 

(5)month

获取指定的月份。

认识:

和YEAR函数一样,MONTH函数同样需要传入一个参数:日期。

同样,我们可以通过NOW函数获取。

<1> 通过NOW函数获取日期,可以这样写:

代码:

  1. SELECT
  2. MONTH(NOW()) 月;

结果展示: 

 

 <2> 可以让月份显示为英文

用MONTHNAME即可实现。

代码:

  1. SELECT
  2. MONTHNAME(NOW());

结果展示: 

 

当然,还可以显示日,小时,分钟,秒,只需要换一下函数名即可,就不做过多介绍了。

(6)str_to_date

将日期格式的字符转换成指定格式的日期。

我们看函数名是非常形象的,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的员工信息。

其实,系统默认的格式是“年-月-日”,所以如果本来就是按照年月日顺序来写的话,是可以直接输出的。

如下面这种情况:

  1. SELECT
  2. *
  3. FROM
  4. employees
  5. WHERE
  6. hiredate='1992-4-3';

 结果展示:

 但是,往往在实际业务中,我们需要根据用户输入的值来进行筛选。

比如,在WEB页面中,我们可能会要求用户输入对应的日期,然后根据他输入的日期进行筛选。

我们知道,用户输入的日期在后台返回的是一个字符串。同样,用户输入的顺序不一定是“年-月-日”。

比如,最终拿到的值可能是这样的: ‘4-3-1992’,当我们那这样的值去筛选,会发现找不到了。

结果展示: 

这样的情况,就需要我们进行一个转换啦!

这样写:

  1. select
  2. *
  3. from
  4. employees
  5. where
  6. hiredate=STR_TO_DATE('4-3-1992','%m-%d-%Y');

结果展示:

 

总结

STR_TO_DATE函数是将字符通过指定的格式转换成日期。

(7)date_format

将日期转换成字符。

认识:

 如图,我们看到,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年)

代码:

  1. select
  2. last_name,
  3. date_format(hiredate,'%m月/%d日 %y年') 入职日期
  4. from
  5. employees
  6. where
  7. commission_pct is not null;

结果展示: 

二、其他函数

这个用的比较少,我们随便介绍几个。

(1)version

输出版本号。

 (2)database

查看当前数据库。

(3)user

查看当前用户。 

其他函数先说这些,以后用到了再说吧。

好啦,这次的分享就到这儿啦

MYSQL系列持续更新中,欢迎订阅

我是小尘,咱们下次不见不散~ 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/菜鸟追梦旅行/article/detail/657721
推荐阅读
相关标签
  

闽ICP备14008679号