无法在查询中按上午/下午对时间(varchar类型)进行排序

时间:2013-03-20 10:49:53

标签: mysql

我在数据库中有一些数据需要按上午/下午排序时间。

我的代码

$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.

请帮我解决这个问题

1 个答案:

答案 0 :(得分: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");