我正在开发一个应用程序来捕获员工的工作时间。工作日的起始值向上舍入,结束值向下舍入到下一个完整的五分钟。如果员工在他开始后点击结束时会发生什么,那就是现在结束了。
我之前尝试的是:UPDATE `work_hours`
SET
END = (
CASE
END
WHEN FROM_UNIXTIME(
UNIX_TIMESTAMP() - (UNIX_TIMESTAMP() % 300)
) < START THEN
START
ELSE
FROM_UNIXTIME(
UNIX_TIMESTAMP() - (UNIX_TIMESTAMP() % 300)
)
END
)
WHERE
`id` = 'xyz'
但它总是插入倒圆时间...... 我不想使用触发器。有没有办法做到这一点
答案 0 :(得分:0)
我用这样的查询解决了它:
UPDATE `work_hours`
SET end = FROM_UNIXTIME(UNIX_TIMESTAMP() - (UNIX_TIMESTAMP() % 300)),
end = IF(end < start, `start`, `end` )
WHERE `id` = 'xyz';