您的位置:

如何在MySQL中使用时间函数进行日期计算

一、DAY、MONTH和YEAR函数

使用DAY函数可以返回日期中的天数,使用MONTH函数可以返回日期中的月份数,使用YEAR函数可以返回日期中的年份。以下是使用示例:

SELECT DAY('2022-10-15');
-- 返回15
SELECT MONTH('2022-10-15');
-- 返回10
SELECT YEAR('2022-10-15');
-- 返回2022

二、DATEDIFF函数

DATEDIFF函数可以计算两个日期之间的天数差。以下是使用示例:

SELECT DATEDIFF('2022-10-15', '2022-10-10');
-- 返回5

三、DATE_ADD函数和DATE_SUB函数

DATE_ADD函数和DATE_SUB函数分别用于向日期加上或减去一定的时间。以下是使用示例:

SELECT DATE_ADD('2022-10-10', INTERVAL 5 DAY);
-- 返回2022-10-15
SELECT DATE_SUB('2022-10-15', INTERVAL 5 DAY);
-- 返回2022-10-10

四、STR_TO_DATE函数和DATE_FORMAT函数

STR_TO_DATE函数可以将字符串转换为日期,DATE_FORMAT函数可以将日期格式化为指定的字符串。以下是使用示例:

SELECT STR_TO_DATE('2022-10-15', '%Y-%m-%d');
-- 返回2022-10-15
SELECT DATE_FORMAT('2022-10-15', '%Y年%m月%d日');
-- 返回2022年10月15日

五、NOW函数和CURDATE函数

NOW函数可以返回当前日期和时间,CURDATE函数可以返回当前日期。以下是使用示例:

SELECT NOW();
-- 返回当前日期和时间,例如2022-10-15 16:08:23
SELECT CURDATE();
-- 返回当前日期,例如2022-10-15

六、TIMESTAMPDIFF函数

TIMESTAMPDIFF函数可以计算两个日期之间的时间差,单位可以是秒、分钟、小时、天、周、月或年。以下是使用示例:

SELECT TIMESTAMPDIFF(SECOND, '2022-10-15 16:00:00', '2022-10-15 16:05:00');
-- 返回300,表示两个日期之间相差300秒
SELECT TIMESTAMPDIFF(HOUR, '2022-10-15 16:00:00', '2022-10-16 10:00:00');
-- 返回18,表示两个日期之间相差18小时