1

我有一个表格,其中包含带有created_at DATETIME类型列的项目。我想退回 2013 年生产的所有物品。

我想我可以这样做:

SELECT * FROM `items`
WHERE `created_at` > '2012' AND `created_at` < '2014'

但理想情况下,我希望能够执行以下操作:

SELECT * FROM `items`
WHERE `created_at` = '2013'

我认为这失败了,因为它会查找DATETIME2013-01-01 00:00:00 的项目。有没有办法通过created_at在比较时将 MySQL 转换为一年来做到这一点?

4

3 回答 3

5

使用列year函数created_at

WHERE YEAR(`created_at`) = '2013'
于 2013-01-22T08:42:36.063 回答
3
SELECT * FROM items WHERE YEAR(created_at) = 2013

参考:MySQL

于 2013-01-22T08:44:42.153 回答
1

使用 DATE_FORMAT mysql 函数。

SELECT * FROM `items`
WHERE DATE_FORMAT(created_at, ,'%Y') = '2013'
于 2013-01-22T08:45:39.743 回答