mysql – 13个字符长时间戳的SQL语句

前端之家收集整理的这篇文章主要介绍了mysql – 13个字符长时间戳的SQL语句前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个封闭的源应用程序,它在MySQL数据库中放置了一个13个字符的长时间戳.一个值是例如:

1277953190942

现在我遇到了问题,我必须编写一个sql语句,它将返回一个与特殊日期匹配的表的所有结果.

所以我有例如2010年7月1日,我将获得时间在01. July 2010 00:00:00至01. July 23:59:59之间的所有行.

我该如何编写这个sql语句?

select * from myTable where TIMESTAMP = ???

有谁知道这个?

最好的祝福.

最佳答案
这是一个具有毫秒精度的Unix timestamp,即自Unix epoch以来的毫秒数.因此,正确的陈述将是

select * from myTable where DATE(FROM_UNIXTIME(timestamp / 1000)) = DATE('2010-07-01');

请注意,查询不会很快,表中的每个值都必须转换为比较日期.一旦此查询开始出现问题(而不是之前的第二个),您可能希望使用一个方法,使用2个时间戳作为一天的开始和结束,这不需要太多的转换开销.我会把这作为锻炼留给渴望的人;)

猜你在找的MySQL相关文章