在PHP Select语句中将MYSQL时间从HH:MM:SS转换为HH:MM

时间:2014-07-04 20:44:55

标签: php mysql

我正在使用PHP Select语句从MySQL中提取数据。 eventTime字段在模式中以TIME存储为HH:MM:SS,但我只想要HH:MM。我尝试在select语句中使用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>';   

}

3 个答案:

答案 0 :(得分:3)

如果他们引用同一个实体,则不应单独存储日期和时间。但是,您可以使用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排序顺序是默认值,可以从查询中省略。

答案 1 :(得分:0)

在PHP中(在MySQL上不确定),您可以执行以下操作:

$formatted_date = date('H:i:s', strtotime($mysql_timedate));

答案 2 :(得分:0)

假设您有类型时间列 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