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是时间间隔)