5

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

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???

提前致谢。我很困惑。

4

3 回答 3

4

你会想要类似的东西WHERE YEAR(FROM_UNIXTIME(date_field)) = 2010

于 2010-10-25T16:27:22.537 回答
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')
于 2010-10-25T16:29:01.460 回答
0

尝试:

WHERE YEAR(FROM_UNIXTIME(`date`)) = 2010;
于 2010-10-25T16:28:36.177 回答