2017-05-19 5 views
-1

ここMAX(DATE_FORMAT(rental_date, '%d/%M/%Y')) & MAX(rental_date)(ない形式の面ではなく、実際の日付に)異なる出力を与えるのMySQLの日付書式エラー

31/July/2005を与え、他は1つが7月であり、他方は8月であるので、ここで2005-08-22 20:03:46を与えます。それはなぜそうですか?クエリに問題はありますか?

SELECT customer_id, MAX(DATE_FORMAT(rental_date, '%d/%M/%Y')) AS Last_rental, MIN(DATE_FORMAT(rental_date, '%d/%M/%Y')) 
AS First_Rental, MAX(rental_date) AS last_R, MIN(rental_date) AS first_R FROM rental 
GROUP BY customer_id 
ORDER BY customer_id 
+3

ことができます。

それはあなたが最新の日付をしたいが、特定の形式でそれを必要とし、最大最初に取ると、その後の書式設定を行います'DATE_FORMAT(MAX(rental_date)、 '%d /%M /%Y')'? –

+0

@Sougataボーズ私は知らない。何か問題はありますか? –

+0

は、サンプルデータと日付の出力を表示します。 –

答えて

2

date_formatの出力は文字列です。これらの文字に続く文字列に関係なく、文字列'31...'を注文すると、「より大きい」'22...'となります。 (Sougataボーズさんのコメントを1として。)

DATE_FORMAT(MAX(rental_date), '%d/%M/%Y')

+0

説明+1 –

0

使用するようにしてください:から

DATE_FORMAT(rental_date, '%d/%M/%Y') 

へ:

DATE_FORMAT(Date(rental_date), '%d/%m/%Y') 

または通常の日付フォーマット:

DATE_FORMAT(DATE(rental_date),'%Y-%m-%d')