MySQL主要的日期函数有以下几种
那我们直接用代码操作一下
首先是 curdate 返回当前的年月日 我们编写代码如下
SELECT curdate();
运行结果如下
然后是 curtime 获取当前的时分秒 我们编写代码如下
SELECT curtime();
运行结果如下
然后就是他们的集合体 now 放回当前时间 既 (年月日 时分秒) 编写代码如下
SELECT now();
运行结果如下
year 接收 一个时间参数 返回该时间对应的年
所以我建议大家在程序中 把时间处理成字符串 储存在数据库 这里的时间可以直接用字符串 前提要是时间格式的字符串
SELECT year("2021-11-30 11:30:56");
运行结果如下
2021-11-30 11:30:56这个日期 对应的年是 2021 没有任何问题
month 他也要接收一个时间参数 用时间格式的字符串即可 返回时间对应的月份
SELECT month("2021-11-30 11:30:56");
运行结果如下
2021-11-30 11:30:56 对应的月份是 11月 没有任何问题
day 接收一个时间参数 可以是时间格式的字符串 返回时间对应的天
SELECT day("2021-11-30 11:30:56");
2021-11-30 11:30:56 对应的天显然就是 30号 没有任何问题
date_add 求时间间隔
参数如下 date_add(时间,interval 间隔数, 间隔单位)
时间可以是时间格式的字符串
interval 是一个固定写法 后面的间隔时间 比如 你想求 你传的时间 加70 那你就可以写70 是一个数字
时间单位 就是 比如 你间隔数 传了 70 那70什么 天 还是月 还是年 最后一个单位就是决定他间隔的时间单位
间隔单位的值 主要有这三种 ( day 天 month 月 year 年 )
我们来写一段代码
SELECT date_add("2021-11-30 11:30:56",interval 70 day);
这段代码 就是 我们在求 2021-11-30 11:30:56 向后推 70天的日期
运行结果如下
2021-11-30 11:30:56 向后推七十个月
SELECT date_add("2021-11-30 11:30:56",interval 70 month);
运行结果如下
2021-11-30 11:30:56向后推 70年
SELECT date_add("2021-11-30 11:30:56",interval 70 year);
运行结果如下
datediff 求两个时间之间 相差多少天 需要接收两个时间参数 可以是时间格式的字符串
参考代码如下
SELECT datediff("2022-02-08 11:30:56","2021-11-30 11:30:56");
我们就拿刚才测试 向后推七十天得到的2022-02-08 11:30:56试一下
运行结果如下
没有任何问题
但需要注意的是 他内部写的 应该是 第一个时间 减第二个时间 如果你把我这个方法的两个参数顺序反过来传 就会变成 -70