Mysql - 如果我只有时间戳,我如何按年选择行?

时间:2011-04-15 12:34:06

标签: php mysql

我有这张桌子

Id      Timestamp
1    |  1302566399
2    |  1502745635
3    |  1374679999
4    |  1264575886
5    |  1154645755

如何只选择年份为2011年的行?

5 个答案:

答案 0 :(得分:6)

SELECT * FROM table WHERE FROM_UNIXTIME(timestamp, '%Y') = 2011;

答案 1 :(得分:2)

其他答案(直接来自查询)已经建议了最简单的方法

你也可以这样做

$year_start = strtotime('2011-01-01');
$year_end = strtotime('2011-12-31 23:59:59.000');

$sql = "SELECT * FROM your_table 
        WHERE Timestamp>=$year_start AND Timestamp<=$year_end";
$res = mysql_query($sql);

函数strtotime()取决于时区设置。

答案 2 :(得分:1)

SELECT * FROM t WHERE YEAR(`timestamp`) = 2011

答案 3 :(得分:1)

select * from table where from_unixtime(field,'%Y') = 2011

答案 4 :(得分:1)

尝试这样的查询,其中myTimestamp是其中包含时间戳的列

SELECT * FROM myTable WHERE FROM_UNIXTIME(myTimestamp, '%Y') = '2011'