如何在mysql查询中选择UNIX date =“2010”?

时间:2010-10-25 16:25:39

标签: mysql unix-timestamp

到目前为止,这是我的代码:

SELECT `date`, title, category, url
FROM cute_news
WHERE category = '4'
ORDER BY `date` DESC

我想根据年份制作页面,例如,2010年,2009年,2008年等。 数据库将日期保存为UNIX_Timestamp。不确定如何使用Year参数查询记录集?

WHERE unix_timestamp(YEAR) = '2010' or something???

提前致谢。我很困惑。

3 个答案:

答案 0 :(得分:4)

您需要WHERE YEAR(FROM_UNIXTIME(date_field)) = 2010之类的内容。

答案 1 :(得分:3)

您可以使用FROM_UNIXTIME()函数,但请注意,这不会使用date列上的索引(如果存在):

... WHERE YEAR(FROM_UNIXTIME(`date`)) = 2010

要使您的查询为sargable,您可以改为使用UNIX_TIMESTAMP()功能:

... WHERE `date` >= UNIX_TIMESTAMP('2010-01-01 00:00:00') AND 
          `date` < UNIX_TIMESTAMP('2011-01-01 00:00:00')

答案 2 :(得分:0)

尝试:

WHERE YEAR(FROM_UNIXTIME(`date`)) = 2010;