gpt4 book ai didi

php - timediff 不适用于 mysql 中的 date_format

转载 作者:行者123 更新时间:2023-11-29 05:32:39 25 4
gpt4 key购买 nike

我使用 timediff(time_out, time_in) AS total_time1.

现在,我想将该时间转换成更好的格式,而不是通常的 hh:mm:ss 所以在同一个查询中我做了 DATE_FORMAT(total_time1, '%l:% i') AS total_time2,但出于某种原因,每当我输入和输出新时间时它都不起作用。

这是查询:

$sql="SELECT 
DATE_FORMAT(time_in, '%l:%i %p') AS time_in,
DATE_FORMAT(time_out, '%l:%i %p') AS time_out,
timediff(time_out, time_in) AS total_time1,
DATE_FORMAT(total_time1, '%l:%i') AS total_time2,
FROM $table";

$result = $mysqli->query($sql);

while($row = $result->fetch_array()){
<td><?php echo $row['time_in']; ?></td>
<td><?php echo $row['time_out']; ?></td>
<td><?php echo $row['total_time1']; ?></td>
<td><?php echo $row['total_time2']; ?></td>
}

我在它自己页面上的一个大表上显示所有内容(包括时间进、出、totaltime1 和 totaltime2)。 total_time1 像我说的那样工作,但是 total_time2 什么都不显示。没有错误或任何东西。我在这里做错了什么。

最佳答案

您不能在同一个查询中使用您创建的别名

你得这样写一遍

$sql="SELECT 
DATE_FORMAT(time_in, '%l:%i %p') AS time_in,
DATE_FORMAT(time_out, '%l:%i %p') AS time_out,
timediff(time_out, time_in) AS total_time1,
DATE_FORMAT(timediff(time_out, time_in), '%l:%i') AS total_time2
FROM $table";

另外,如果你想格式化时间,

你不应该使用 DATE_FORMAT 而应该使用 TIME_FORMAT

像这样

$sql="SELECT 
TIME_FORMAT(time_in, '%l:%i %p') AS time_in,
TIME_FORMAT(time_out, '%l:%i %p') AS time_out,
timediff(time_out, time_in) AS total_time1,
TIME_FORMAT(timediff(time_out, time_in), '%l:%i') AS total_time2
FROM $table";

Here's关于 MySQL 中所有日期和时间函数的文档

关于php - timediff 不适用于 mysql 中的 date_format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13457496/

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