You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL考勤表拆分日期时间,取最小为签到最大为签出实现咨询

MySQL考勤表按天统计签到签出方案

实现SQL

假设你的考勤表名为attendance,用户唯一ID字段为user_id,打卡时间字段为clock_time,可直接使用以下查询语句:

SELECT 
  user_id AS id,
  DATE(clock_time) AS `date`,
  MIN(clock_time) AS checkin,
  MAX(clock_time) AS checkout
FROM attendance
GROUP BY user_id, DATE(clock_time);

逻辑说明

  • 用MySQL内置的DATE()函数从完整的日期时间字段中提取出纯日期,作为分组维度
  • 聚合函数MIN()返回单个用户单日所有打卡记录里的最早时间,对应签到时间
  • 聚合函数MAX()返回单个用户单日所有打卡记录里的最晚时间,对应签出时间
  • 分组条件设置为用户ID和提取出的日期,确保每个用户每天只会生成一条统计结果

如果你的表名、字段名和示例不同,替换SQL中对应的表名、字段名即可正常执行。

内容的提问来源于stack exchange,提问作者Muhammad Ayub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 04:39:03