PHP和mysql获取最近的时间

Pin*_*wer 2 javascript php mysql

我正在使用time()(php函数)存储日期列.我的日期列有一个int数据类型,因为我正在使用time()php函数.

这是一个示例:

date
1317957366
1318043891
Run Code Online (Sandbox Code Playgroud)

我的问题是,我如何查询或创建一个逻辑,以获得一个时间与今天时间最接近的结果?

我想通过mysql查询它而不是php逻辑,但如果你有建议我应该在php上做,那也没关系.

谢谢你的帮助将非常感激和奖励.:)

Mic*_*ski 5

比较当前时间的绝对值 - 存储的时间,并选择MIN()其中:

也许是这样的?

SELECT *
FROM tbl
GROUP BY `date`
HAVING MIN(ABS(UNIX_TIMESTAMP(NOW()) - `date`));
Run Code Online (Sandbox Code Playgroud)

如果这不能正常工作,请尝试使用子查询:

SELECT *
FROM tbl
WHERE  ABS(UNIX_TIMESTAMP(NOW()) - `date`) IN
  SELECT (MIN(ABS(UNIX_TIMESTAMP(NOW()) - `date`)) FROM tbl);
Run Code Online (Sandbox Code Playgroud)

由于您已将日期存储为INT而不是MySQL DATETIME,因此需要将当前时间戳NOW()转换为Unix时间戳,然后减去存储的时间戳date.