MySql日期格式错误

时间:2017-05-19 06:12:26

标签: mysql sql

此处MAX(DATE_FORMAT(rental_date, '%d/%M/%Y')) & MAX(rental_date)提供不同的输出(不是格式而是实际日期)

例如,一个给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

2 个答案:

答案 0 :(得分:2)

问题是date_format的输出是一个字符串。如果您订购的字符串'31...'是“大于”'22...',无论这些字符后面是什么。

您想要最新的日期,但需要以特定格式使用,先取最大值然后再进行格式化:

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

(根据Sougata Bose的评论。)

答案 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')