1

日付が標準ではないテーブルがあり、日付と時刻で行を整理する必要があります。

job_date    |    job_time
=========================
12/12/2012  |   10.30am  
11/10/2012  |    9.00pm  
14/11/2012  |   11.50pm  

これらをmysql内でフォーマットする方法はありますか。DATE_FORMAT() 関数を調べましたが、見つかった例はテーブル内の形式に関連していないようです。

4

3 に答える 3

2

重要な方法はSTR_TO_DATEです。私はあなたに2つの解決策を与えます:

最初:データベースを変更したくない場合:

SELECT jobdate, STR_TO_DATE(job_time,'%h:%i%p')AS real_job_time FROM yourtable ORDER BY real_job_time;

2番目:データベースを変更できる場合は、TIME形式を使用します:

ALTER TABLE yourtable 
    MODIFY COLUMN job_time TIME NOT NULL;
UPDATE yourtable SET job_time = STR_TO_DATE(job_time,'%h:%i%p');

とを選択するには

SELECT jobdate,job_time FROM yourtable ORDER BY job_time

2番目の解決策が断然最善であり、それを選択する必要があると思います。

于 2012-12-27T12:37:06.417 に答える
2

SELECT *, STR_TO_DATE(CONCAT(job_date,' ',job_time), 'Ymd H:i:s') AS date_format テーブルから ORDER BY date_format DESC

于 2012-12-27T12:35:16.980 に答える
0

明らかに、正しい日付として保存する方がはるかに優れており、クエリが高速になります。

SELECT *
FROM table
ORDER BY substr(job_date, -4), substr(job_date, 4, 2), substr(job_date, 1, 2)
于 2012-12-27T12:29:27.123 に答える