MYSQL-------日期函数以及查询时间、求时间差、预测生日

#now()
返回当前系统日期+时间


#curdate()
返回当前系统日期,不包含时间


#curtime()
返回当前时间,不包含日期


#获取指定部分,年月日小时分钟秒(结合NOW(),常量也可以)
SELECT YEAR(NOW())
SELECT YEAR(列名)

SELECT MONTH(NOW())中文月份
SELECT MONTHNAME(NOW())英文的月份
---以此类举


#str_to_date:将日期格式的字符转换成指定格式的日期
STR_TO_DATE('9-13-1999','%m-%d-%Y')   1999-09-13
#date_format:将日期转换成字符
DATE_FORMAT('2019/5/19','%Y年%m月%d日')   2018年06月06日


#求日期差函数
1.DATEDIFF()
SELECT DATEDIFF(NOW(),'XXXX-X-X') --第一个参数减去第二个参数

  2.TIMESTAMPDIFF(要求的年或月或日,表日期,当前日期)
  年可以计算年龄,但是月与日是直接统计从出生到现在的月份,所以不可以用来预测生日
  SELECT name, birth, CURDATE(),
  -> TIMESTAMPDIFF(YEAR,birth,CURDATE()) AS age
  -> FROM pet; 如果当前日期的日历年比出生日期早,则减去一年。(自动计算)

#预测下一个月生日的人的信息
此方法对于12月份+1到一月份,而不是13月份
不管当前月份是什么它都能执行。因此不必在查询中使用一个特定的月份,DATE_ADD()允许在一个给定的日期上加上时间间隔。如果在NOW()值上加上一个月,然后用MONTH()提取月份,
产生生日所在月份: mysql
> SELECT name, birth FROM pet -> WHERE MONTH(birth) = MONTH(DATE_ADD(CURDATE(),INTERVAL 1 MONTH)); (INTERVAL是时间间隔)
原文地址:https://www.cnblogs.com/god-for-speed/p/10893454.html