2014-12-02 160 views
-1

這很奇怪,我查了很多,有人能確認它是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」日期

有人遇到過這種情況嗎?

回答

5

因爲您正在使用STRING的MAX()。既然你已經得到了你的一天價值第一:

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

是真的,因爲31>01

你可能想

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

代替。

0

您正在選擇按天數排序的格式化日期的MAX(),然後是月份,然後是年份。在此排序會產生亂序結果。

你需要做的是將格式轉換爲PHP,而不是MySQL。您的數據庫應主要關注數據。 PHP可以使用類似strftime()的東西來處理重寫數據以滿足您的演示需求。