项目场景:
提示:签到规则sql编写
本次项目有一部分功能为签到显示以及规则判断,由于要求显示列格式为’12:23’这样的形式,而数据为varchar类型。
问题描述
提示:这里描述项目中遇到的问题:
由于设定为可以多次打卡,所以每次打卡会生成新的数据,从中选择记录第一次打卡与最后一次打卡的时间,之前通过max,min获取
MIN(sign.signTime),
MAX(sign.signTime),
解决方案:
把varchar类型转换为time类型,在通过format纠正格式,%k是24小时制
DATE_FORMAT(MIN(CAST(sign.signTime AS TIME)), '%k:%i' )