在MySQL Workbench中如何计算特定Datetime与当前时间的时间间隔
MySQL计算指定Datetime与当前时间的多单位时间差
你提供的代码是SQL Server语法,MySQL需要用专属函数实现需求,以下是按不同单位计算时间差的具体方案:
按单一单位计算
天数差
如果只需要日期部分的差值:
SELECT DATEDIFF(NOW(), '2021-01-01 00:00:00') AS days_difference;
若要包含时分秒的精确天数差,用TIMESTAMPDIFF:
SELECT TIMESTAMPDIFF(DAY, '2021-01-01 00:00:00', NOW()) AS exact_days_difference;
小时差
SELECT TIMESTAMPDIFF(HOUR, '2021-01-01 00:00:00', NOW()) AS hours_difference;
分钟差
SELECT TIMESTAMPDIFF(MINUTE, '2021-01-01 00:00:00', NOW()) AS minutes_difference;
一次性返回多种单位
如果需要同时得到天、小时、分钟的分段差值(比如总天数+剩余小时+剩余分钟):
SELECT TIMESTAMPDIFF(DAY, '2021-01-01 00:00:00', NOW()) AS total_days, TIMESTAMPDIFF(HOUR, '2021-01-01 00:00:00', NOW()) % 24 AS remaining_hours, TIMESTAMPDIFF(MINUTE, '2021-01-01 00:00:00', NOW()) % 60 AS remaining_minutes;
核心函数说明
NOW():返回当前系统的日期和时间,和CURRENT_TIMESTAMP()功能一致。DATEDIFF(expr1, expr2):仅计算日期部分的差值,返回expr1 - expr2的天数。TIMESTAMPDIFF(unit, expr1, expr2):计算expr2 - expr1的时间差,unit可指定为DAY、HOUR、MINUTE等单位。
内容的提问来源于stack exchange,提问作者ArrogantZeus
相关产品推荐
相关产品推荐

