2012-08-28 70 views
1

我想为包含时间戳值的字段选择最大时间戳值,但实际上是一个文本字段。在您说出来之前,我无法更改字段类型,因为填充它的应用程序不可更改。这很烦人,我知道。当时间戳是一个文本字段时选择最大时间戳

时间戳的格式是

Wed Mar 02 13:28:59 CST 2011 -> this is actually a text value in MYSQL 

这里是我的尝试:

SELECT DISTINCT MAX(STR_TO_DATE(`Timestamp`, '%d, %m, %Y')) FROM `table` 

'时间戳' 指的是所谓的时间戳列。

这只是返回时间戳的NULL值。 感谢您的帮助。

回答

1

这应该为你工作,也看看​​

SELECT DISTINCT MAX(STR_To_DATE(`Timestamp`,'%a %b %d %H:%i:%s CST %Y')) 
FROM `table`; 

测试案例:

SET @v = 'Wed Mar 02 13:28:59 CST 201'; 

SELECT STR_To_DATE(@v, '%a %b %d %H:%i:%s CST %Y'); 
+0

非常感谢你! – hacket

0

使用此

SELECT DISTINCT MAX(STR_TO_DATE(`table.Timestamp`, '%d, %m, %Y')) FROM `table` 
+0

这并不工作:(。我认为字符串的格式正在抛弃它。 – hacket

+0

将引号放在它附近会给出'未知列'错误。 – hacket

1

试试这个格式

ST R_TO_DATE(`Timestamp`, '%A%B%d%T CST%Y')

1

尝试此查询 -

SELECT 
    MAX(STR_TO_DATE(`Timestamp`, '%a %b %d %H:%i:%s CST %Y')) 
FROM 
    `table`