0

我有一个带有 MySQL 数据库的 PHP 页面,其中有 2 个字段使用TIMEMySQL 中的类型。我想使用 MySQL将这两个字段从 24 小时格式(00:00:00)转换为 12 小时 AM/PM 格式,但它不起作用。(00:00 AM)DATE_FORMAT('','')

到目前为止,我所做的是创建了同样使用 TIME 类型的第 3 和第 4 字段。我将第 1 和第 2 场发送到第 3 和第 4 场,并转换第 3 和第 4 场以保留原件。

<?php
//connection statements omitted

$sql="SELECT * FROM $table ORDER BY date LIMIT $start, $amount";
$result = $mysqli->query($sql);

//Sends the original time_in data to the new format_in column. 
$sql2="UPDATE $table SET format_in = time_in";
$result2=$mysqli->query($sql2);

$sql3="SELECT DATE_FORMAT(format_in,'%l:%i %p') FROM $table";
$result3=$mysqli->query($sql3);

while($row = $result->fetch_array()){

?>
//other fields omitted
<td><?php echo $row['format_in'];?></td>

//end while loop
<?php } ?>

这段代码唯一要做的就是复制 time_in 列中的任何内容。这是标准的 24 小时格式00:00:00。基本上,这段代码什么都不做。我在这里做错了什么?

编辑显示我的 $result

4

1 回答 1

1
while($row = $result3->fetch_array()){

代替

while($row = $result->fetch_array()){

根据我们在评论部分的对话:

改变

$sql="SELECT * FROM $table ORDER BY date LIMIT $start, $amount";
$result = $mysqli->query($sql);

$sql="SELECT field_1,field_2,field_n,DATE_FORMAT(format_in,'%l:%i %p') format_in FROM $table ORDER BY date LIMIT $start, $amount";
$result = $mysqli->query($sql);
于 2012-11-05T20:20:41.190 回答