Php 从mysql中选择时间戳

Php 从mysql中选择时间戳,php,mysql,timestamp,unix-timestamp,Php,Mysql,Timestamp,Unix Timestamp,我在查询条件与TIMESTAMP列相关时遇到问题。因此,我有一个名为table1的表,它有两列start\u time和end\u time。它们都存储时间戳。我想查询数据库中的特定行,其中end\u time高于给定的时间戳值,低于给定的时间戳值。基本上,我想得到end\u time在给定的时间戳范围内的所有行 我发现在我的情况下,以下查询是有效的: SELECT * FROM table1 WHERE UNIX_TIMESTAMP(end_time) >= FROM_UNIXTIME(

我在查询条件与TIMESTAMP列相关时遇到问题。因此,我有一个名为table1的表,它有两列
start\u time
end\u time
。它们都存储时间戳。我想查询数据库中的特定行,其中
end\u time
高于给定的时间戳值,低于给定的时间戳值。基本上,我想得到
end\u time
在给定的时间戳范围内的所有行

我发现在我的情况下,以下查询是有效的:

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')
上面的查询返回
end\u timestamp
2015-11-30 20:18:05的行

我觉得我错过了一些东西。我的
结束时间是否应该使用INT而不是TIMESTAMP?我相信下面的查询应该返回预期值,但它什么也没有给我:

SELECT * FROM table1
WHERE end_time >= FROM_UNIXTIME( 1448914740 ) 
AND end_time <= FROM_UNIXTIME( 1448914810 )
从表1中选择*
其中end_time>=FROM_UNIXTIME(1448914740)

和end_time您不需要使用
FROM_UNIXTIME
转换
WHERE
子句值
FROM_UNIXTIME
将时间戳转换为日期。如果向SQL语句发送的值已经是
TIMESTAMP
格式,则
SQL
将如下所示:

SELECT * FROM table1 WHERE end_time >= 1448914740 AND end_time <= 1448914810
SELECT * FROM table1 WHERE FROM_UNIXTIME(end_time) >= '2015-11-30 20:14:00' AND FROM_UNIXTIME(end_time) <= '2015-11-30 20:14:05'
由于您将值作为
时间戳存储在表中,我建议您使用第一条
SQL
语句

SELECT * FROM table1 WHERE FROM_UNIXTIME(end_time) >= '2015-11-30 20:14:00' AND FROM_UNIXTIME(end_time) <= '2015-11-30 20:14:05'