Php 从mysql中选择时间戳
我在查询条件与TIMESTAMP列相关时遇到问题。因此,我有一个名为table1的表,它有两列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(
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'