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;
这里的获取当前时间,是从系统获取就是你的笔记本电脑当前的时间
1.2 CURTIME() , CURRENT_TIME() 返回当前时间,只包含时、 分、秒
SELECT CURTIME(), CURRENT_TIME() FROM DUAL;
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 返回当前时间的年-月-日-时-分-秒,当前是什么,是系统时间。
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,...
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的取值:
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;
坚持,为什么,总是觉得自己学的越多,忘记的越多,是不是不应该学习太多,显然不是,对目前的我来说,应该是这几种原因:
1.听了网课,没有动手操作
2.动手操作,遇到新的问题还是不会
3,没有及时整理,学习的内容
4.坚持了几个星期觉得太简单没有意思
学习了不代表掌握了,掌握了不代表会用了,建议大家和我一起,做笔记,及时复盘,做练习,有机会了一定要去实战。好了今天就到了,如果后面有好的想法和感受,我会与大家及时沟通,欢迎大家提问!