Select 数据库中使用时间戳的特定年份的项目

Select items from database from specific year using timestamp

我试图弄清楚如何 select 所有具有 2017 年时间戳的项目。我有一个数据库列,其中包含项目发布时间的时间戳,它看起来像这样“1506888905”。我想知道我必须对下面的代码做些什么才能让它 select 只有带有 X 年时间戳的项目。 (2016 年、2017 年等)

SELECT * FROM my_db_table ORDER BY my_views_column DESC LIMIT 50;

上面的代码是我用来获取浏览量最高的第一个项目的代码。现在,如果我的时间戳列被命名为 my_timestamp_column.

,我将如何处理仅来自特定年份的项目 select

我在这里也遇到过另一个类似的问题,建议使用下面的代码。但是我已经尝试过了,但没有成功,所以我想我做错了什么。

SELECT * FROM my_db_table WHERE my_timestamp_column >= DATE_SUB(NOW(),INTERVAL 1 YEAR) ORDER BY my_views_column DESC LIMIT 50;

如有任何帮助,我们将不胜感激。谢谢!

你可能会这样做:

SELECT * FROM my_db_table WHERE YEAR(FROM_UNIXTIME(my_timestamp_column)) = 2017 ORDER by my_views_column DESC LIMIT 50;

FROM_UNIXTIME 会将您的时间戳转换为 "Human Readable" 日期,YEAR 将从中提取年份。

或者,您可以使用介于:

SELECT * FROM my_db_Table WHERE my_timestamp_column BETWEEN "2017-01-01 00:00:01" AND "2017-12-31 23:59:59"; 

hth

Ole Kristian Ek Hornnes