gpt4 book ai didi

mysql - 更新集不相应地工作

转载 作者:行者123 更新时间:2023-11-29 03:45:00 24 4
gpt4 key购买 nike

我正在制作一个在 MySQL 中运行的计时器函数,它在启动计时器时将 start_time 设置为 MySQL CURRENT_TIMESTAMP。

当他们停止计时器时,我在 SQL 中计算时间差,并将其添加到时间中,并再次将 start_time 设置为 0。

UPDATE `time`
SET `time` = time + (UNIX_TIMESTAMP(CURRENT_TIMESTAMP)-UNIX_TIMESTAMP(start_time)),
`start_time` = '0000-00-00 00:00:00'
WHERE `id` = '1'

当我停止计时器时,它没有在查询中使用 start_time,而是先将其设置为 0000-00-00 00:00:00,所以我的时间实际上是 (time + (UNIX_TIMESTAMP(CURRENT_TIMESTAMP) - UNIX_TIMESTAMP('0000-00-00 00:00:00'))),这不是正确的值。

CREATE TABLE IF NOT EXISTS `time` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`time` double NOT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`start_time` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

我该如何解决这个问题?

最佳答案

为什么不分两次更新呢?

UPDATE `time`
SET `time` = (time + (UNIX_TIMESTAMP(CURRENT_TIMESTAMP) - UNIX_TIMESTAMP(start_time)))
WHERE `id` = '1';

UPDATE `time`
`start_time` = '0000-00-00 00:00:00'
WHERE `id` = '1'

查看您的架构。默认值设置为该值,更新语句使用它的当前值。您是否事先更改了启动计时器的值?尝试在更新之前添加一个选择以查看 start_time 的值是多少。

我刚试过这个..

更新时间设置 start_time = '2011-08-28 17:02:47'其中 id = 1;

更新时间 SET time = (time + (UNIX_TIMESTAMP(CURRENT_TIMESTAMP) - UNIX_TIMESTAMP(start_time))), 开始时间 = '0000-00-00 00:00:00' WHERE id = '1';

and id = 1 及时得到了正确的数字。检查以确保 start_time 和 time 具有正确的值。

关于mysql - 更新集不相应地工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7223470/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com