找回密码
 立即注册
点击图片立即观看
搜索
查看: 38|回复: 0

MySQL 常用时间函数

[复制链接]
发表于 2026-7-17 21:23:25 |香港| 显示全部楼层 |阅读模式
一、获取当前时间
  1. SELECT
  2. NOW(),        -- 年月日时分秒 2026-07-17 15:20:10
  3. CURDATE(),    -- 仅日期 2026-07-17
  4. CURTIME(),    -- 仅时间 15:20:10
  5. SYSDATE(),
  6. UTC_DATE(),
  7. UTC_TIME();
复制代码

二、拆分日期 / 时间字段
假设有字段 regtime 存储注册时间(int 时间戳或 datetime)
  1. SELECT
  2. uid,
  3. regtime,
  4. YEAR(regtime) 年,
  5. MONTH(regtime) 月,
  6. DAY(regtime) 日,
  7. HOUR(regtime) 时,
  8. MINUTE(regtime) 分,
  9. SECOND(regtime) 秒,
  10. DAYOFWEEK(regtime) 星期,
  11. DATE_FORMAT(regtime,'%Y-%m-%d') 日期,
  12. DATE_FORMAT(regtime,'%Y-%m-%d %H:%i:%s') 完整时间
  13. FROM pre_common_member;
复制代码

三、时间戳 ↔ 日期转换(Discuz 常用 int 时间戳)
Discuz 会员表 pre_common_member 里 regdate 是int 时间戳
  1. -- 时间戳转日期
  2. FROM_UNIXTIME(aa.regdate,'%Y-%m-%d %H:%i:%s') AS 注册时间
  3. -- 日期转时间戳
  4. UNIX_TIMESTAMP('2026-07-17')
复制代码
套进你的 SQL 示例:
  1. SELECT
  2.     aa.`uid` AS '用户ID',
  3.     aa.`loginname` AS '登录名',
  4.     FROM_UNIXTIME(aa.regdate,'%Y-%m-%d') AS '注册日期',
  5.     bb.`grouptitle` AS '用户组',
  6.     CASE
  7.         WHEN aa.`adminid` NOT IN (1,2,3) THEN '空'
  8.         ELSE cc.`grouptitle`
  9.     END AS '管理权限组'
  10. FROM pre_common_member aa
  11. LEFT JOIN pre_common_usergroup bb ON aa.`groupid` = bb.`groupid`
  12. LEFT JOIN pre_common_usergroup cc ON aa.`adminid` = cc.`groupid`;
复制代码

四、时间加减
  1. DATE_ADD(regtime, INTERVAL 7 DAY)    -- 7天后
  2. DATE_SUB(regtime, INTERVAL 1 MONTH)  -- 1个月前
  3. DATE_ADD(regtime, INTERVAL 3 HOUR)   -- 加3小时
复制代码

五、计算时间差
  1. DATEDIFF('2026-07-10','2026-07-01') -- 相差天数
  2. TIMESTAMPDIFF(DAY,regdate,NOW())     -- 注册至今多少天
复制代码

六、判断时间 CASE WHEN 搭配
  1. CASE
  2. WHEN TIMESTAMPDIFF(DAY,FROM_UNIXTIME(aa.regdate),NOW()) < 30 THEN '新用户'
  3. WHEN aa.adminid > 0 THEN '管理员'
  4. ELSE '老会员'
  5. END AS 用户标签
复制代码

七、日期格式化占位符
%Y 4 位年 | %m 月份 | %d 日期
%H 24 小时 | %i 分钟 | %s 秒
%w 星期
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|B.K 网络工作室

GMT+8, 2026-9-14 20:08 , Processed in 0.020368 second(s), 18 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表