选择查询以获取确切的时间戳

Posted

技术标签:

【中文标题】选择查询以获取确切的时间戳【英文标题】:select query for exact time stamp 【发布时间】: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) 函数。 【参考方案1】:

这应该可以工作(见最后一行):

select date_format(time_stamp, '%Y-%m-%d %H:%i:%s' ) as Time_Stamp
   from log 
   where username='test' and Time_Stamp <= NOW()
   ORDER BY Time_Stamp DESC LIMIT 1;

【讨论】:

如果它回答了你的问题,别忘了接受这个答案! @nickhar:当然,显然我需要大约 4 分钟来接受答案。

以上是关于选择查询以获取确切的时间戳的主要内容,如果未能解决你的问题,请参考以下文章

SQL查询以获取具有不同时间戳的多行

如何编写 hql 查询或条件查询以根据时间戳获取最新记录

SQL查询以获取时间戳列中没有小时的数据

通过 linq 对实体查询进行分组,以通过加入表来获取具有最新时间戳的一条记录

CouchDB 查询以获取具有 MAX 时间戳的文档

如何编写SQL查询以基于时间戳从DB获取数据