【发布时间】:2021-09-20 09:37:09
【问题描述】:
我有一个 MySQL 查询,它应该计算字段之间的时间差,但是由于该查询,我无法通过接口将其格式化为时间,因此计算不正确,所以我是尝试将 DATE_Format 添加到查询中,但无论我尝试什么,都没有任何效果。
这是我正在使用的查询:
IF(`Time Elapsed` < `Speed Fault`, `Speed Fault` - `Time Elapsed`, 0) AS `Under Time` ,
我尝试添加:DATE_FORMAT(`Under Time`, `%i:%s`) 以使字段显示分钟和秒。
当前使用上述查询,它返回正确的秒数,如果差异在 60 秒以下,但如果它例如 3 分钟和 5 秒的差异,则查询返回值 305,依此类推。 .
所以我希望有人可以帮助我。我愿意在 PHP 或 MySQL 中执行此操作。
【问题讨论】:
-
你不能在同一个查询中使用别名。
-
date_format()的第一个参数必须是日期时间,而不是秒数。您可以使用FROM_UNIXTIME()将秒数转换为DATETIME。 -
@Barmar - 我没有值,它是从其他 2 个字段即时计算出来的,所以我必须在其中放一个别名才能提取正确的信息,不是吗? ?
-
您可以将带有别名的查询放在子查询中,然后在主查询中引用别名。
-
我不确定你的意思是什么@Barmar 我真的只是想弄清楚为什么当我减去两个时间字段时它没有给我正确的信息?