2013-02-26 85 views
0

好的,所以我有一个表在一个名为'时间'的列中记录了更新的时间。此列以标准MySQL日期时间格式记录。获取最新的时间戳mysql

我有以下查询其挑选出的最新日期:

SELECT * FROM table1 WHERE DATE(time) = (SELECT MAX(DATE(time))FROM table1) 

和我有另一个查询其挑选出的最新时间:

SELECT * FROM table1 WHERE TIME(time) = (SELECT MAX(TIME(time))FROM table1) 

我需要的是一个没有两个日期和时间给我最近更新的记录。

任何帮助表示赞赏,谢谢!

+0

这里你不需要'MAX()',但值得注意的是你可以直接执行'MAX(time)'。无需分割日期和时间。 – 2013-02-26 13:28:52

回答

2
SELECT * FROM table1 order by time desc limit 1 

建议不要使用时间作为列名,因为它是MySQL中的保留字,会导致问题和/或混淆。

此外,MySQL可以自动维护上次更新记录的日期时间。声明一个列作为时间戳而不是日期时间来查看它是如何工作的。

+1

只是'极限1'就足够了 – Bohemian 2013-02-26 13:21:38

+0

时间不是MySQL中的保留字,但我同意它会引起混淆。 – Strawberry 2013-02-26 13:21:40

+0

@Strawberry Time是一个保留的关键字,但它可以像日期一样无反拨地使用。 ':)' – 2013-02-26 13:22:27