我有一个带有MySQL数据库的PHP页面,其中有2个字段在MySQL中使用TIME
类型。我想使用MySQL (00:00:00)
将这两个字段从24小时格式(00:00 AM)
转换为12小时AM / PM格式DATE_FORMAT('','')
,但它不起作用。
到目前为止,我所做的是创建了第3和第4个字段,它也使用了TIME类型。我将第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
。基本上,这段代码没有做任何事情。我在这里做错了什么?
已编辑以显示我的$结果
答案 0 :(得分: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);