如何使用MySQL从下表中获取'max'日期?
date_time
-----------------------------
Wednesday, 21 July 2010 20:41:51
Tuesday, 19 October 2010 16:7:41
Tuesday, 29 November 2010 16:7:41
我想从表中检索最大日期。
答案 0 :(得分:5)
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 | +--------------------------------------------------------------------+
不要重新发明轮子,将列存储在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;
获取最大值
select max(date_time) from your_table;
如果你想保留varchar
(祝你好运)
select max(str_to_date(date_time, '%W, %d %M %Y %T')) from your_table;
答案 1 :(得分:1)
如果在该格式上运行max不起作用,我猜你可以尝试在查询中将其重新格式化为允许使用date format的最大格式。只要该列被正确格式化,您应该能够通过desc执行订单。
答案 2 :(得分:1)
SELECT * FROM date_time ORDER BY STR_TO_DATE(date,'%Y %M,%d') DESC LIMIT 1
答案 3 :(得分:1)
唯一可行的解决方案是以正确格式存储日期
因此,请将字段类型更改为datetime
答案 4 :(得分:0)
SELECT date_time FROM TABLE ORDER BY date_time DESC LIMIT 1
当您的date_time字段属于DATETIME类型或其他任何日期特定类型时,这将起作用。
答案 5 :(得分:0)
您可以使用
SELECT mydate
FROM mytable
ORDER BY mydate DESC
LIMIT 1
或者只是
Select max(mydate) from mytable