0

日付が英国の日付形式で保存されるという避けられない状況があります。例:

31/12/2001  00:00:00

降順で必要です。これを試しましたが、エラーが発生します。

select *, DATE_FORMAT(completiondate,'\%e/%c/%Y\') as cdate 
from projects 
where countries = 1 
order by cdate desc

エラー:

MySQLサーバーのバージョンに対応するマニュアルで、'' order by cdatedesc'の近くで使用する正しい構文を確認してください。

MySQL4.1.9を使用しています

4

4 に答える 4

2

これが最終的な解決策でした

select *,completiondate from projects order by str_to_date(completiondate,'%d/%m/%Y %H:%i') desc
于 2012-05-29T10:45:20.883 に答える
1

%キャラクターを不必要にエスケープしています。しかし、実際の問題は、クエリに終了していない文字列リテラルがあることです。

-- this does not terminate the string ----------v
select *, DATE_FORMAT(completiondate,'\%e/%c/%Y\') as cdate
from projects
where countries = 1
order by cdate desc

への変更:

SELECT *, DATE_FORMAT(completiondate,'%e/%c/%Y') AS cdate
FROM projects
WHERE countries = 1
ORDER BY cdate DESC
于 2012-05-29T10:17:49.407 に答える
0
SELECT * FROM projects WHERE countries = 1 order by cdate desc

データベースにすでにcdateがあると思いますか?その場合、「date_format」はすでに存在するため、設定する必要はありません。しかし、4.1.9を使用したことがないので、間違っている可能性があります。

于 2012-05-29T10:14:24.697 に答える