在运行查询时,我无法显示正确的结果。
我的表格以这种方式组织TIME - timestamp
ID | TIME | USERID | ACTIONS
1 1483302364 1 3
2 1483225201 2 3
3 1483311599 1 3
4 1483272464 3 4
5 1483291052 4 3
6 1483274125 1 3
7 1483304974 1 3
我正在尝试进行查询,我将在一天内选择所有操作。 假设我想选择02/28/2017发生的所有操作。
我不知道是否可以制作一个查询,无论何时显示上述日期发生的所有操作
答案 0 :(得分:1)
您可以使用DATE()
功能来比较day
SELECT * FROM tableName
Where DATE( timeCol ) = '2017-02-28'
或者您可以使用hour:min
来比较时间戳:
SELECT * FROM tableName
Where timeCol BEtWEEN "2017-02-28 00:00:00" AND "2017-02-28 23:59:59"
答案 1 :(得分:1)
一起使用DATE()和FROM_UNIXTIME()。
select id, date(FROM_UNIXTIME(rtime)), userid, actions
from uttime
WHERE rtime BETWEEN UNIX_TIMESTAMP('2017-01-01') AND UNIX_TIMESTAMP('2017-01-01') + 86400;
检查:http://rextester.com/OUZIM16796
感谢@Strawberry以这种方式提出有关use或WHERE子句的建议,并且只是为了提高性能而添加INDEX(rtime)
。
答案 2 :(得分:0)
您可以使用FROM_UNIXTIME(TIME)
,试试这个:
select * from table1 where select DATE(FROM_UNIXTIME(TIME))='2017-28-02'