php - MySQL 日期间隔不起作用

标签 php mysql date timestamp unix-timestamp

我在选择 future 的 session 时遇到问题,因为日期是从现在起 21 天后。因此,不是从现在到 21 天之间,而是仅从这一天起 21 天后举行的 session 。

在我的表dx_sessions_dates中,我有一个BIGINT类型的字段timestart,其中保存了时间戳(为什么BIGINT 而不是 TIMESTAMP? -> 不是我的数据库,但无法更改它...)。

我的 SQL 查询是:

SELECT timestart, timefinish, sessionid FROM `dx_sessions_dates` WHERE timestart = UNIX_TIMESTAMP(DATE_ADD(NOW(), INTERVAL 21 DAY))

如您所见,我想选择开始时间为 21 天后的所有 session 。 从现在起 21 天应该是 2015 年 4 月 15 日

查询始终返回 0 行...。在我的表中,我有一个 timestart ,其中 value = 1429081200 。当您使用 this 计算日期时您会看到现在是 2015 年 4 月 15 日。为什么我没有返回任何行?

最佳答案

您计算的 unixtimestamp 永远不会完全是您存储的值的时刻。您只需要同一天。

尝试

SELECT timestart, timefinish, sessionid 
FROM `dx_sessions_dates` 
WHERE date(FROM_UNIXTIME(timestart)) = curdate() + interval 21 DAY

关于php - MySQL 日期间隔不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29252221/

相关文章:

javascript - 如何在 javascript 中将字符串 ' dd/mm/yy hh:MM:ss ' 转换为日期?

mysql - Rails `where` 时间少于查询

javascript - Bootstrap 按钮-单选值未设置

php - Laravel 路线未定义,但显然是

MySQL 选择包含前导或尾随空格的字段

php - 时间戳查询未检索到结果?

session - PHP session 处理错误

php - 如何在 WHERE 子句中使用数组值?

MySQL 不为唯一约束删除索引

vba - 将 mmyy 转换为可用日期