gpt4 book ai didi

MySql - 使用 1 列中的 2 个值计算时间距离(糟糕的设计解决方法)

转载 作者:太空宇宙 更新时间:2023-11-03 11:55:19 24 4
gpt4 key购买 nike

我被授予访问遗留数据库的权限,以便进行一些统计工作。

到目前为止,我已经得到了我需要的一切,除了我试图计算时间距离,使用 5 个值,存储在 4 列 (ARGGGHHH) 中

enter image description here

上面是数据库的一个子部分。

如您所见,我有开始和结束的日期和时间。我想计算从 str_date + str_time 到 stp_date + stp_time 的时间距离

我遇到的问题是,计算应该根据 stp_time 中的second value 执行不同。

IFF second value = "DUR"......那么在这种情况下我可以只取第一个值“01:04:51”

IFF 第二个值 = 其他任何值。 stp_time 代表一个时间码,而不是一个持续时间。然后必须计算 stp_time - str_time(如果日期不同则计算日期)

所有数据均为 24 小时格式。我已经完成了条件聚合的工作,但我还没有想出这个,而且我以前从未使用过像这样格式错误的列。

欢迎提出任何建议。

感谢阅读

最佳答案

SELECT
CASE WHEN RIGHT(stp_time,3)="DUR"
THEN
TIMEDIFF(LEFT(stp_time,8), '00:00:00')
ELSE
TIMEDIFF(
STR_TO_DATE(CONCAT(stp_date," ",LEFT(stp_time,8)), '%d/%b/%Y %H:%i:%s'),
STR_TO_DATE(CONCAT(str_date," ",LEFT(str_time,8)), '%d/%b/%Y %H:%i:%s')
)
END AS diff
FROM so33289063

关于MySql - 使用 1 列中的 2 个值计算时间距离(糟糕的设计解决方法),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33289063/

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