mysql服务器返回错误的结果

时间:2014-12-02 16:52:04

标签: php mysql date

这很奇怪,我环顾四周,任何人都可以确认它是mysql服务器的bug吗?

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:i:a

返回日期

我的需求很简单,在dd-mm-yyyy中选择最大的“最大”日期

有人面对这个吗?

2 个答案:

答案 0 :(得分:5)

因为您正在使用 STRING 的MAX()。因为你已经获得了第一天的价值:

'31-01-1900' > '01-01-2014'

是真的,因为31> 01

你可能想要

SELECT id, DATE_FORMAT(MAX(date), '%....')

代替。

答案 1 :(得分:0)

您选择的格式日期MAX()按日期编号排序,然后是月份,然后是年份。对此进行排序将产生无序结果。

您需要做的是将格式转移到PHP,而不是MySQL。您的数据库应主要关注数据。 PHP可以使用类似strftime()的内容来处理重写数据以满足您的演示需求。