获取PHP的最大日期

时间:2011-02-16 08:19:52

标签: php mysql

如何使用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

我想从表中检索最大日期。

6 个答案:

答案 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                                                |
+--------------------------------------------------------------------+

str_to_date

不要重新发明轮子,将列存储在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