1

我在数据库中有一些数据,我需要按 am/pm 对时间进行排序。

我的代码

$current_dat=date("m/d/Y");

$current_dat_short = substr($current_dat,0,2);

$rest = substr($current_dat,-7,2);

$sql_timesheet=mysql_query('SELECT * FROM timesheet WHERE reg_id='.$regiD.' AND MONTH(date)='.$current_month.' AND YEAR(date)='.$current_year.' ORDER BY date DESC');
while($res_timesheet=mysql_fetch_array($sql_timesheet)){
    $projID=$res_timesheet['project'];
    $taskID=$res_timesheet['task'];
    $editableid=$res_timesheet['id'];

以上查询按时间排序

01:20 AM
01:25 PM        
03:25 AM
03:40 AM
04:20 PM

但我需要像这样的输出

01:20 AM        
03:25 AM
03:40 AM
01:25 PM
04:20 PM.

请帮我解决这个问题

4

1 回答 1

2

您可以通过使用MySQL中的STR_TO_DATE函数来做到这一点:

SELECT STR_TO_DATE('10.00pm','%h.%i%p');

尝试像这样更改您的查询语句:

更新: 声明:

$sql_timesheet = mysql_query("SELECT * FROM timesheet WHERE reg_id=".$regiD." AND MONTH(date)=".$current_month." AND YEAR(date)=".$current_year." order by STR_TO_DATE(date,'%h.%i%p') desc,start_time asc");
于 2013-03-20T10:53:44.363 回答