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中选择最大的“最大”日期
有人面对这个吗?
答案 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()
的内容来处理重写数据以满足您的演示需求。