从mysql表中获取记录,其中datatime小于当前日期时间

时间:2016-02-08 05:39:35

标签: mysql datetime

我有一个名为TrackHistory的表,用于跟踪表User中的任何更改。 TrackHistory表有一个数据类型为DATETIME的列ChangedDate,用于记录表User中何时进行更改。我想获取表TrackHistory中的所有行,其中ChangedDate列包含的日期小于当前日期时间

例如

TrackHistory

Row_No.         ChangedDate            UserID       Marks
1             2016-02-08 08:45:34     5             40
2             2016-02-08 08:45:34     6             30
3             2016-02-08 09:12:34     5             50
4             2016-02-08 09:40:30     5             70
5             2016-02-08 09:40:30     6             60

假设在我的系统当前时间是2016-02-08 10:10:20

由于第4和第5行是TrackHistory表中的最后一次更改。因此,第4行和第5行是ChangedDate刚好小于当前时间的行。

那么如何编写一个mysql查询来选择ChangedDate刚好小于当前日期的行。换句话说,我怎样才能从TrackHistory表中获得最后更新的行。

提前致谢。

1 个答案:

答案 0 :(得分:0)

仅仅取决于你的意思"只是少于当前的日期时间&#34 ;;你可以定义一个间隔。

SELECT * FROM TrackHistory WHERE ChangedDate < NOW() AND ChangedDate > DATE_SUB( NOW() , INTERVAL 10 SECONDS );

请参阅MySQL NOW functionDATE_SUB function