如何使用MySQL從下表中獲取「最大」日期?用PHP獲取最大日期
date_time
-----------------------------
Wednesday, 21 July 2010 20:41:51
Tuesday, 19 October 2010 16:7:41
Tuesday, 29 November 2010 16:7:41
我想檢索表中的最大日期。
如何使用MySQL從下表中獲取「最大」日期?用PHP獲取最大日期
date_time
-----------------------------
Wednesday, 21 July 2010 20:41:51
Tuesday, 19 October 2010 16:7:41
Tuesday, 29 November 2010 16:7:41
我想檢索表中的最大日期。
mysql> select str_to_date('Wednesday, 21 July 2010 20:41:51', '%W, %d %M %Y %T'); +--------------------------------------------------------------------+ | str_to_date('Wednesday, 21 July 2010 20:41:51', '%W, %d %M %Y %T') | +--------------------------------------------------------------------+ | 2010-07-21 20:41:51 | +--------------------------------------------------------------------+
不要推倒重來,存儲於列要獲得最大的價值
select max(date_time) from your_table;
如果你喜歡保持varchar
(祝你好運)
select max(str_to_date(date_time, '%W, %d %M %Y %T')) from your_table;
SELECT date_time FROM TABLE ORDER BY date_time DESC LIMIT 1
當date_time字段的類型爲DATETIME或任何其他日期特定的類型時,這將起作用。
實際上,date_time字段類型是varchar – vishnu 2011-02-16 08:27:54
如果在該格式下運行max不起作用我猜你可以嘗試在查詢中將它重新格式化爲允許使用date format的最大值的格式。只要該列正確格式化,你應該能夠通過desc來執行一個命令。
您可以使用
SELECT mydate
FROM mytable
ORDER BY mydate DESC
LIMIT 1
或者只是
Select max(mydate) from mytable
date_time字段類型是varchar,因此不會起作用。 – seanieb 2011-02-16 08:37:55
我從不在數據庫中使用varchar存儲日期。爲什麼有人這樣做? – quocnguyen 2011-02-16 09:01:42
SELECT * FROM date_time ORDER BY STR_TO_DATE(date,'%Y %M,%d') DESC LIMIT 1
唯一可能的解決方案是保存在適當的格式日期。
所以,在date-time
alter table your_table add column new_date_time datetime;
update your_table set new_date_time=str_to_date(date_time, '%W, %d %M %Y %T');
alter table channge column date_time ditch_date_time varchar(255);
alter table channge column new_date_time date_time datetime;
你的字段類型更改爲datetime
什麼是日期列數據類型?它是varchar? – 2011-02-16 08:24:22
是的。它是varchar – vishnu 2011-02-16 08:27:18
可能的重複:* [我如何選擇具有MAX(列值)的行,由SQL中的另一列DISTINCT?](http://stackoverflow.com/questions/612231)*。 – 2011-06-11 13:10:50