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 に答える