进行查询以选择特定日期的特定列

时间:2017-02-28 22:07:31

标签: mysql timestamp

在运行查询时,我无法显示正确的结果。

我的表格以这种方式组织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发生的所有操作。

我不知道是否可以制作一个查询,无论何时显示上述日期发生的所有操作

3 个答案:

答案 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'