MySQL 日期时间函数

1.获取日期、时间:

CURDATE() ,CURRENT_DATE() 返回当前日期,只包含年、 月、日

CURTIME() , CURRENT_TIME() 返回当前时间,只包含时、 分、秒

NOW() / SYSDATE() / CURRENT_TIMESTAMP() / LOCALTIME() / LOCALTIMESTAMP() 返回当前系统日期和时间

UTC_DATE() 返回UTC(世界标准时间) 日期

UTC_TIME() 返回UTC(世界标准时间) 时间

在获取日期和时间的函数案例中,比较常用的我给大家做一些介绍?

1.1 CURRENT_DATE() 和 CURDATE() 返回当前日期,只包含年、 月、日

SELECT CURRENT_DATE(), CURDATE() FROM DUAL;

这里的获取当前时间,是从系统获取就是你的笔记本电脑当前的时间

MySQL 日期时间函数_第1张图片

 1.2 CURTIME() , CURRENT_TIME() 返回当前时间,只包含时、 分、秒

SELECT CURTIME(), CURRENT_TIME() FROM DUAL;

MySQL 日期时间函数_第2张图片

2. 获取月份、星期、星期数、天数等函数

YEAR(date) / MONTH(date) / DAY(date) 返回具体的日期值

HOUR(time) / MINUTE(time) / SECOND(time) 返回具体的时间值

MONTHNAME(date) 返回月份:January,...

DAYNAME(date) 返回星期几:MONDAY,TUESDAY.....SUNDAY

WEEKDAY(date) 返回周几,注意,周1是0,周2是1,。。。周日是6

QUARTER(date) 返回日期对应的季度,范围为1~4

WEEK(date) , WEEKOFYEAR(date) 返回一年中的第几周

DAYOFYEAR(date) 返回日期是一年中的第几天

DAYOFMONTH(date) 返回日期位于所在月份的第几天

DAYOFWEEK(date) 返回周几,注意:周日是1,周一是2,。。。周六是 7

讲讲常用的吧

2.1 YEAR(date) / MONTH(date) / DAY(date) 返回具体的日期值 仅返回 年份;月份;天数

SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()) FROM DUAL;

为什么我用到了 NOW() ,因为在1中讲到,NOW 返回当前时间的年-月-日-时-分-秒,当前是什么,是系统时间。

MySQL 日期时间函数_第3张图片

 2.2 HOUR(time) / MINUTE(time) / SECOND(time) 返回具体的时间值 ,仅返回time中的 HOUR时,MINUTE分, SECOND秒

关键在于(time)括号中的time,这三函数个是用于时间的函数,所以对于从系统获取时间来说,要选用时间的函数如:    CURTIME()返回时分秒     NOW() now 包括了时分秒

2.3 WEEKDAY(date) 返回周几,注意,周1是0,周2是1,。。。周日是6

 SELECT WEEKDAY('2022-12-14')FROM DUAL;
#至于这个函数里面的算法设计有没有考虑月份大小,闰年什么的,我现在也很疑惑

2.4 MONTHNAME(date) 返回月份:January,... 

MySQL 日期时间函数_第4张图片

3.计算日期和时间的函数

函数

用法

DATE_ADD(datetime, INTERVAL expr type), ADDDATE(date,INTERVAL expr type)

返回与给定日期时间相差INTERVAL时 间段的日期时间

DATE_SUB(date,INTERVAL expr type), SUBDATE(date,INTERVAL expr type)

返回与date相差INTERVAL时间间隔的 日期

上述函数中type的取值:

MySQL 日期时间函数_第5张图片

 

DATE_ADD(datetime, INTERVAL expr type) datetime -当前时间 INTERVAL(时间间隔)-固定格式必须加上,expr-具体数据你可以填写任何整数,type-类型 可以是 year ,month,day,hous....

DATE_SUB(date,INTERVAL expr type)当前时间 INTERVAL(时间间隔)-固定格式必须加上,expr-具体数据你可以填写任何整数,type-类型 可以是 year ,month,day  ,type 不能为时间,时分 秒 

DATE_ADD和DATE_SUB的区别,除了DATE_SUB不能使用时间外,DATE_ADD 是给datetime 加上时间,DATE_SUB是给time 减去时间,当然这两个函数主要取决于 expr 数据的正负,如果DATE_ADD(datetime, INTERVAL expr type)中的expr为负数,它的效果和DATE_SUB正常作用是一致的。

说白了DATE_ADD(datetime, INTERVAL expr type)  它的正常操作是,可以获取年月日,时分秒,expr 为整数 ,它是为date 获取的时间加上expr,DATE_SUB(date,INTERVAL expr type)它的正常操作是,可以获取年月日,expr 为整数 ,它是为datetime 获取的时间减去expr,这两种操作都要看,type 数值类型,如果是year 那就给年份加减,如果是month 那就给月份加减,记得DATE_SUB(date,INTERVAL expr type) 只能获取到年月日 。

SELECT  DATE_ADD('2022-1-1', INTERVAL -3 YEAR), DATE_SUB('2022-1-1',INTERVAL 3  YEAR) FROM DUAL;
 

MySQL 日期时间函数_第6张图片

总结:

坚持,为什么,总是觉得自己学的越多,忘记的越多,是不是不应该学习太多,显然不是,对目前的我来说,应该是这几种原因:

1.听了网课,没有动手操作

2.动手操作,遇到新的问题还是不会

3,没有及时整理,学习的内容

4.坚持了几个星期觉得太简单没有意思

学习了不代表掌握了,掌握了不代表会用了,建议大家和我一起,做笔记,及时复盘,做练习,有机会了一定要去实战。好了今天就到了,如果后面有好的想法和感受,我会与大家及时沟通,欢迎大家提问!

你可能感兴趣的:(高级数据库技术,mysql,数据库)