我在选择 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/