【发布时间】:2016-02-16 13:35:06
【问题描述】:
我遇到了与 TIMESTAMP 列相关的条件的查询问题。所以我有一个名为 table1 的表,它有两列 start_time 和 end_time。它们都存储 TIMESTAMP。我想在我的数据库中查询end_time 高于给定时间戳值且低于给定时间戳值的特定行。基本上,我想获取end_time 在给定 TIMESTAMP 范围之间的所有行。
我发现在我的情况下,以下查询有效:
SELECT * FROM table1
WHERE UNIX_TIMESTAMP(end_time) >= FROM_UNIXTIME('2015-11-30 20:14:00')
AND UNIX_TIMESTAMP(end_time) <= FROM_UNIXTIME('2015-11-30 20:14:05')
但这不是我想要的。我想给 TIMESTAMP 值而不是 DATE。
同样奇怪的是,这个查询返回的值的 end_time 的日期早于给定的时间戳:
SELECT * FROM table1 WHERE end_time > FROM_UNIXTIME( '2015-11-30 20:20:05' )
上面的查询返回 end_timestamp 为 2015-11-30 20:18:05 的行
我觉得我在这里遗漏了一些东西。我应该为我的end_time 使用 INT 而不是 TIMESTAMP 吗?我相信以下查询应该返回预期值,但它什么也没给我:
SELECT * FROM table1
WHERE end_time >= FROM_UNIXTIME( 1448914740 )
AND end_time <= FROM_UNIXTIME( 1448914810 )
【问题讨论】:
标签: php mysql timestamp unix-timestamp