mysql服务器返回错误结果
问题描述:
这很奇怪,我查了很多,有人能确认它是mysql服务器的bug吗?mysql服务器返回错误结果
MySQL表中有ID和日期字段超过200条记录和日期各不相同,其中很少是今天的日期!
这个查询:
SELECT id, MAX(date_format('date', '%d-%m-%Y %H:%i')) AS mymaxdate
from mytable1
返回错误的日期!虽然使用的东西像10天回...
这样的:
SELECT id, max('date') AS mymaxdate from mytable1
工程确定,但返回的日期YYYY-MM-DD G:我:一个
我需要的是简单,以dd-mm-yyyy选择mlatest“max”日期
有人遇到过这种情况吗?
答
因为您正在使用STRING的MAX()。既然你已经得到了你的一天价值第一:
'31-01-1900' > '01-01-2014'
是真的,因为31
>01
。
你可能想
SELECT id, DATE_FORMAT(MAX(date), '%....')
代替。
答
您正在选择按天数排序的格式化日期的MAX()
,然后是月份,然后是年份。在此排序会产生乱序结果。
你需要做的是将格式转换为PHP,而不是MySQL。您的数据库应主要关注数据。 PHP可以使用类似strftime()
的东西来处理重写数据以满足您的演示需求。