【发布时间】:2012-11-26 03:53:38
【问题描述】:
如果我有多个时间戳记录,并且想要获取最接近当前日期的时间戳。我应该使用什么确切的查询命令?提前致谢。下面我描述了我的最后一个查询命令:
mysql> select date_format(time_stamp, '%Y-%m-%d %H:%i:%s' ) as Time_Stamp
from log
where username='test' and Time_Stamp <= NOW();
| 2012-11-23 14:50:28 |
| 2012-11-23 16:39:45 |
| 2012-11-23 16:51:41 |
| 2012-11-23 16:58:43 |
| 2012-11-25 10:12:14 |
| 2012-11-25 12:50:38 |
| 2012-11-25 12:51:20 |
| 2012-11-25 13:15:44 |
| 2012-11-25 17:47:43 |
| 2012-11-26 09:24:46 |
+---------------------+
285 rows in set (0.00 sec)
我只想得到2012-11-26 09:24:46
【问题讨论】:
-
您应该在表中减去当前时间戳(作为数字)和时间戳(作为数字)并从该差异中获取 abs()。最小绝对值将来自最近的时间戳。
-
@Kamil:也许,你能给出确切的查询命令吗?
-
抱歉,我不确定如何在 MySQL 中执行此操作,并且我没有任何服务器来测试我的想法。可能为了将日期时间转换为数字,您可以使用
UNIX_TIMESTAMP(datetime)函数。
标签: mysql