项目里遇到一个功能,需要查出表中,昨天一天某个人的考勤记录。
问题本不复杂,但是表中用户打卡时间为char类型的时间戳(毫秒)。这样一来比较时间范围就麻烦了许多。
还好,网上以为有脾气的博主写的文章帮助了我。(文末附连接)
重点:
mysql数据库中的长整形,比java中的长整形少了秒后买的毫秒数。所以要乘1000.
在mysql数据库中,把“1252999488000”(java中的Long类型)转成日期:
select from unixtime(1252999488)
最后完成我项目上遇到的问题,需要的sql(没有兴趣的直接跳过这一段,看下面的简化):
SELECT
trd.user_ji_fen_id AS userId,
trd.approve_id AS approveId,
trd.proc_inst_id AS procInstId,
trd.integral AS integral,
trd.user_check_time AS userCheckTime,
trd.rule_detail_id AS ruleDetailId,
tcr.rule_name AS ruleName,
tar.approve_type AS approveType
FROM
tid_record_detail trd
LEFT JOIN tid_check_rule_detail tcr ON trd.rule_detail_id = tcr.id
AND tcr.is_delete = 0
LEFT JOIN tid_approve_rule tar ON trd.approve_id = tar.