在MySQL中,TIME 相关函数用于处理时间类型数据,比如提取时间部分、格式化时间、计算时间差等。下面介绍几个常用的时间处理函数及其使用方法。
1. TIME() 函数:提取时间部分
从日期时间值中提取出时间部分(时:分:秒)。
SELECT TIME('2024-05-20 14:30:25'); -- 返回 14:30:25常用于 datetime 或 timestamp 字段,只保留时间。
2. CURTIME():获取当前时间
返回当前系统的时间,不包含日期。
SELECT CURTIME(); -- 如:15:22:30也可以用 CURRENT_TIME(),效果相同。
3. TIMEDIFF():计算两个时间的差值
返回两个时间之间的差,结果为 TIME 类型。
SELECT TIMEDIFF('15:30:00', '10:15:00'); -- 返回 05:15:00注意:两个参数必须都是时间或日期时间格式。
4. ADDTIME() 和 SUBTIME():时间加减操作
对时间进行加法或减法运算。
SELECT ADDTIME('09:00:00', '02:30:00'); -- 返回 11:30:00 SELECT SUBTIME('18:00:00', '03:15:30'); -- 返回 14:44:30可用于计算工作时长、会议结束时间等场景。
5. TIME_FORMAT():格式化时间输出
按指定格式显示时间,类似 DATE_FORMAT(),但专用于时间。
SELECT TIME_FORMAT('14:35:20', '%h:%i %p'); -- 返回 02:35 PM常用格式符:
%H:小时(24小时制) %h:小时(12小时制) %i:分钟 %s:秒 %p:AM 或 PM6. HOUR(), MINUTE(), SECOND():提取时间单位
分别提取小时、分钟、秒。
SELECT HOUR('14:30:25'); -- 返回 14 SELECT MINUTE('14:30:25'); -- 返回 30 SELECT SECOND('14:30:25'); -- 返回 25这些函数在处理打卡记录、服务时长统计、定时任务调度等场景非常实用。
基本上就这些,掌握这几个函数就能灵活处理 MySQL 中的时间数据了。
