我有这张桌子
Id Timestamp
1 | 1302566399
2 | 1502745635
3 | 1374679999
4 | 1264575886
5 | 1154645755
如何只选择年份为2011年的行?
答案 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'