首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SQL查询中使用TimeStampDiff()发出

在SQL查询中使用TimeStampDiff()发出
EN

Stack Overflow用户
提问于 2013-08-25 16:38:26
回答 1查看 1.3K关注 0票数 0

我一直试图让我的sql查询返回在过去7天中创建的记录。

每个条目都有一个时间戳记录,因此我使用了TIMESTAMPDIFF函数来编写以下查询

代码语言:javascript
复制
SELECT * FROM `messages` WHERE TIMESTAMPDIFF(DAY, time, NOW()) <= 7

出于某种原因,这是一个2011年的记录列表!

这是我做错的简单语法错误吗?

我也尝试过使用DATEDIFF()

代码语言:javascript
复制
SELECT * FROM `messages` WHERE DATEDIFF(NOW(), time) <= 7

但这似乎给了我同样错误的结果。我怀疑这是因为DATEDIFF没有使用UNIX时间戳?

我在另一个使用DATEDIFF()查询的表上使用了另一个查询,它运行良好,但该表中有一个实际日期列,而不是时间戳。

对不起,如果这是一个简单的答案,但我已经玩了一段时间,但现在没有用!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-25 16:47:07

请尝试以下查询:

代码语言:javascript
复制
SELECT *
FROM messages
WHERE time > UNIX_TIMESTAMP(NOW()) - 604800

一个小小的解释:7天= 168小时= 10 080分钟= 604 800秒。

由于UNIX时间戳是自1970-01-01 00:00:00以来传递的秒数,所以必须使用秒计算。因此,MySQL中的大多数日期/时间函数都是无用的,因为它们只使用本机MySQL格式来存储日期和时间。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18431230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档