如何确保字段大于sql update上的其他字段

时间:2016-11-29 12:22:20

标签: mysql sql

我正在开发一个应用程序来捕获员工的工作时间。工作日的起始值向上舍入,结束值向下舍入到下一个完整的五分钟。如果员工在他开始后点击结束时会发生什么,那就是现在结束了。

我之前尝试的是:

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'

但它总是插入倒圆时间...... 我不想使用触发器。有没有办法做到这一点

1 个答案:

答案 0 :(得分:0)

我用这样的查询解决了它:

UPDATE `work_hours` 
SET end = FROM_UNIXTIME(UNIX_TIMESTAMP() - (UNIX_TIMESTAMP() % 300)), 
end = IF(end < start, `start`, `end` ) 
WHERE `id` = 'xyz';