我使用PHP Select语句从MySQL中提取数据。eventTime字段在模式中存储为TIME,格式为HH:MM:SS,但我只想要HH:MM。我已经尝试在选择语句中使用TIME_FORMAT(eventTime, '%H:% I '),但它不起作用。什么好主意吗?我甚至试图在PHP转换变量,但我被难住了。请帮我找出我错过了什么。
$query="SELECT id,eventDate,eventTime, eventName FROM specialevents ORDER BY eventDate,eventTime ASC";
$result=$mysqliConnection->query($query,MYSQLI_STORE_RESULT);
while($row =$result->fetch_object())
{
$id=$row->id;
$eventDate=$row->eventDate;
$eventTime=$row->eventTime;
$eventName=$row->eventName;
$reportTime=$row->reportTime;
echo '<tr>’;
echo '<td class="tdId"><input type="text" class="tbId" value="' . $id . '"/></td>’;
echo '<td class="tdEventDate"><input type="text" class="tbEventDate" value="' . $eventDate . '"/></td>’;
echo '<td class="tdEventTime"><input type="text" class="tbEventTime" value="' . $eventTime . '"/></td>’;
echo '<td class="tdEventName"><input type="text" class="tbEventName" value=" ' . $eventTime . '"/></td>’;
echo '<td class="tdReportTime"><input type="text" class="tbReportTime" value=" ' . $reportTime . '"/></td>';
}
如果日期和时间指向同一个实体,就不应该分开存储它们。然而,你可以使用MySQL的TIME_FORMAT()
函数来格式化你的时间:
TIME_FORMAT(date,format)
根据格式字符串格式化日期值。
$query="SELECT id, eventDate, TIME_FORMAT(eventTime, '%H:%i') AS eventTime, eventName
FROM specialevents
ORDER BY eventDate, eventTime ASC";
您可以使用DATE_FORMAT
中的说明符来按照您的意愿进行格式化。
另外,ASC
排序顺序是默认的,可以从您的查询中省略。
在PHP中(不确定MySQL),您可以做以下操作:
$formatted_date = date('H:i:s', strtotime($mysql_timedate));
假设您有一个time类型的列 Php的方法如下:
$new_time = date('H:i', strtotime($mysql_timedate)); // mysql_timedate is the row containg time form the db and outout is hour:mins
Mysql方法:
$sql = "SELECT DATE_FORMAT(column name here, '%H:%i') FROM table name"; // output hour:mins