gpt4 book ai didi

mysql - 从秒转换为时间后截断了不正确的时间值

转载 作者:行者123 更新时间:2023-11-29 15:50:02 25 4
gpt4 key购买 nike

我试图通过MySQL中的各种时间函数和转换来获取每个用户的驾驶时间总和。但是,由于某种原因,我的代码不再工作,尽管它今天早些时候可以工作并且我没有进行任何更改。

这就是我正在尝试运行的

DROP TABLE IF EXISTS super_users;

/* creates empty table */
CREATE TABLE super_users(
super_user_name VARCHAR (50),
total_drives INT (3),
total_paid DECIMAL (10, 2),
total_drive_time VARCHAR(40),
average_paid DECIMAL (10, 2),
average_drive_time VARCHAR(40),
total_months_of_driving INT (2),
id VARCHAR (40));

SET SQL_SAFE_UPDATES = 0;

/* imports all user ids into table */
INSERT INTO super_users(id)
SELECT DISTINCT id FROM drive_data_final
GROUP BY id;

UPDATE super_users
SET total_drive_time = (SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(drive_end_time, drive_start_time)))) FROM drive_data_final WHERE id = super_users.id);

但是,我不断得到

Error Code: 1292. Truncated incorrect time value: '3300971'

我尝试将代码分解为更小的部分,当我取出 SEC_TO_TIME 部分并执行 SELECT SEC_TO_TIME(total_drive_time) 之后,没有出现任何问题我想要保存的值。然而,当我尝试时

UPDATE super_users
SET total_drive_time = (SELECT SUM(TIME_TO_SEC(TIMEDIFF(drive_end_time, drive_start_time))) FROM drive_data_final WHERE id = super_users.id);

UPDATE super_users
SET total_drive_time = SEC_TO_TIME(total_drive_time);

也返回相同的错误。我不知道为什么在它之前工作完全正常的情况下会发生这个错误。

请帮忙。谢谢!

最佳答案

SEC_TO_TIME返回TIME,因此total_drive_time应该是TIME而不是VARCHAR

一天的秒数是 86400,而您的总和 3300971 比这个还要大。 SEC_TO_TIME 仅转换为小时、分钟和秒,而不是天。

关于mysql - 从秒转换为时间后截断了不正确的时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56814675/

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