NOW()
返回当前的日期和时间。
示例:SELECT NOW();
CURDATE()
返回当前的日期。
示例:SELECT CURDATE();
CURTIME()
返回当前的时间。
示例:SELECT CURTIME();
DATE(expression)
提取日期或日期时间表达式的日期部分。
示例:SELECT DATE(‘2023-03-21 15:30:00’);
TIME(expression)
提取时间或日期时间表达式的时间部分。
示例:SELECT TIME(‘2023-03-21 15:30:00’);
YEAR(date)、MONTH(date)、DAY(date)
分别提取日期的年、月、日部分。
示例:SELECT YEAR(CURDATE()), MONTH(CURDATE()), DAY(CURDATE());
HOUR(time)、MINUTE(time)、SECOND(time)
分别提取时间的小时、分钟、秒部分。
示例:SELECT HOUR(CURTIME()), MINUTE(CURTIME()), SECOND(CURTIME());
DATE_ADD(date, INTERVAL expr type)
向日期添加指定的时间间隔。
示例:SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);
DATE_SUB(date, INTERVAL expr type)
从日期减去指定的时间间隔。
示例:SELECT DATE_SUB(CURDATE(), INTERVAL 1 MONTH);
DATEDIFF(expr1, expr2)
计算两个日期之间的天数差。
示例:SELECT DATEDIFF(‘2023-03-21’, ‘2023-01-01’);
TIMEDIFF(expr1, expr2)
计算两个时间点之间的差值。
示例:SELECT TIMEDIFF(‘23:00:00’, ‘22:00:00’);
DATE_FORMAT(date, format)
按照指定的格式格式化日期。
示例:SELECT DATE_FORMAT(CURDATE(), ‘%Y-%m-%d’);
STR_TO_DATE(str, format)
根据指定的格式把字符串转换为日期时间。
示例:SELECT STR_TO_DATE(‘21-03-2023’, ‘%d-%m-%Y’);
UNIX_TIMESTAMP([date])
将日期转换为UNIX时间戳。
示例:SELECT UNIX_TIMESTAMP(CURDATE());
FROM_UNIXTIME(unix_timestamp, [format])
将UNIX时间戳转换为日期。
示例:SELECT FROM_UNIXTIME(1679481600);
ADDDATE(date, days)
向日期添加天数。
示例:SELECT ADDDATE(CURDATE(), 10);
SUBDATE(date, days)
从日期减去天数。
示例:SELECT SUBDATE(CURDATE(), 10);
LAST_DAY(date)
返回月份的最后一天。
示例:SELECT LAST_DAY(CURDATE());
DAYNAME(date)
返回日期的星期名。
示例:SELECT DAYNAME(CURDATE());
MONTHNAME(date)
返回月份名。
示例:SELECT MONTHNAME(CURDATE());
注意:在实际使用这些函数时,应考虑时区设置对日期和时间函数结果的影响。MySQL服务器、数据库连接和客户端的时区设置都可能影响日期和时间值的计算和展示。
DATE_ADD函数在MySQL中用于向日期添加指定的时间间隔。这个函数非常灵活,可以处理多种日期和时间类型的数据,包括DATE、DATETIME和TIMESTAMP等。其基本语法如下:
DATE_ADD(date, INTERVAL expr type)
date:是需要增加时间的起始日期。
expr:是你想要增加的时间数值。
type:是时间间隔的类型,比如DAY、HOUR、MINUTE等。
时间间隔类型
type参数可以是以下任何一个,这使得DATE_ADD函数非常灵活:
SECOND
MINUTE
HOUR
DAY
WEEK
MONTH
QUARTER
YEAR
等等。
增加天数:
SELECT DATE_ADD('2023-01-01', INTERVAL 10 DAY);
增加小时:
SELECT DATE_ADD('2023-01-01 08:00:00', INTERVAL 8 HOUR);
增加分钟:
SELECT DATE_ADD('2023-01-01 00:00:00', INTERVAL 30 MINUTE);
增加月份:
SELECT DATE_ADD('2023-01-01', INTERVAL 2 MONTH);
注意事项
使用DATE_ADD时,确保起始日期是有效的日期格式,否则可能导致错误。
当对月份或年份进行加减时,如果结果日期无法匹配(如2月30日),MySQL会自动调整结果以适应真实的日历日期。
DATE_ADD提供了灵活的日期操作方式,非常适合需要进行日期计算的场景。