java培训学习常用函数之日期时间函数

发布时间:2020年01月30日作者:atguigu浏览次数:1,086

(3)  日期时间函数

Java培训

  • DATE_FORMAT(datetime ,fmt)和STR_TO_DATE(str, fmt)所需的日期模板

Java培训

  1. 使用NOW(),SYSDATE(),CURDATE(),CURTIME()获取当前时间

SELECT CURTIME(),CURDATE(),NOW(),SYSDATE();

  1. DATEDIFF(date1,date2) 返回两个日期之间相差的天数

SELECT DATEDIFF(CURDATE(),’2019-3-1′);  — 计算当前日期和2019-3-1之间相差的天数

案例: 计算员工表中服务年限大于35年的员工信息,并且按照年薪升序排列

SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限”

FROM EMP

WHERE ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) > 35

ORDER BY 服务年限;

注意:在WHERE子句中无法使用字段别名。这是因为MySql执行语句的顺序决定的

上面语句执行的顺序是:(1)FROM  (2)WHERE  (3)SELECT (4)ORDER BY 。中间的每一步都会生成一张虚拟表,后面的步骤都是在上一张虚拟表中进行筛选与查询的。在执行WHERE子句的时候还没有字段的别名。但是在执行ORDER BY的时候,字段的别名已经存在了。

我们可以使用如下的方式进行解决(后面我们会详细讲解这种用法)

SELECT TEMP.*

FROM ( SELECT EMPNO,ENAME,JOB,HIREDATE, ROUND(DATEDIFF(SYSDATE(),HIREDATE)/365) “服务年限”

       FROM EMP) TEMP

WHERE TEMP.服务年限 > 35;

  1. DATE_ADD(datetime, INTERVALE expr  type), 返回与给定日期时间相差INTERVAL时间段的日期时间

案例: 查询EMP表中员工的转正日期

SELECT EMPNO,ENAME,JOB,HIREDATE 入职日期, DATE_ADD(HIREDATE, INTERVAL 3 MONTH) 转正日期

FROM EMP;

  1. STR_TO_DATE(str, fmt) 把一个字符串按照日期模板解析为DATE类型。注意:表示日期的字符串的字符串的格式必须要和模板的格式一致,转换才能成功

SELECT * FROM EMP

WHERE HIREDATE = STR_TO_DATE(‘1980-12-17′,’%Y-%m-%d’);

 

SELECT * FROM EMP

WHERE HIREDATE = STR_TO_DATE(‘1981/20/2′,’%Y/%d/%m’);

  1. DATE_FORMAT(datetime ,fmt) 把一个日期类型的数据格式化为特定格式的字符串

案例: 查询员工的信息,把员工的入职日期显示为”日-月-年”格式

SELECT EMPNO,ENAME,HIREDATE ‘标准日期’, DATE_FORMAT(HIREDATE,’%d-%m-%Y’) “日期1″

FROM EMP ;

想要了解跟多关于Java培训课程内容欢迎关注尚硅谷Java培训,尚硅谷除了这些技术文章外还有免费的高质量Java培训课程视频供广大学员下载学习


上一篇:
下一篇:
相关课程

java培训 大数据培训 前端培训 UI/UE设计培训

关于尚硅谷
教育理念
名师团队
学员心声
资源下载
视频下载
资料下载
工具下载
加入我们
招聘岗位
岗位介绍
招贤纳师
联系我们
全国统一咨询电话:010-56253825
地址:北京市昌平区宏福科技园2号楼3层(北京校区)

深圳市宝安区西部硅谷大厦B座C区一层(深圳校区)

上海市松江区谷阳北路166号大江商厦6层(上海校区)

武汉市东湖高新开发区东湖网谷(武汉校区)

西安市雁塔区和发智能大厦B座3层(西安校区)