2017-05-19 77 views
-1

這裏MAX(DATE_FORMAT(rental_date, '%d/%M/%Y')) & MAX(rental_date)給不同的輸出(不是格式條款,但實際日期)MySql的日期格式錯誤

對於例如,一個給31/July/2005等給出了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

@SougataBose我不知道。它有什麼問題嗎? –

+0

顯示樣本數據和期望的日期輸出。 –

回答

2

問題是date_format的輸出是一個字符串。如果您訂購字符串'31...'是「大於」'22...',無論這些字符後面是什麼。

你想要最新的日期,但需要以特定的格式,取最大值,然後再執行格式化:

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

(按Sougata Bose的評論。)

+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')