如何在where子句中使用mysql提取年份

如何在where子句中使用mysql提取年份,mysql,Mysql,我想在日期字段中搜索年份。我像这样使用提取,但它会产生错误。 SELECT * FROM (blog) WHERE EXTRACT(YEAR FROM blog_dt) = '2014' 更简单: SELECT * FROM (blog) WHERE YEAR(blog_dt) = 2014 请参阅手册: 返回日期的年份,范围为1000到9999,或返回日期的0 “零”日期 mysql>选择年份('1987-01-01') 你应该这样做: SELECT * FROM (blog) W

我想在日期字段中搜索年份。我像这样使用提取,但它会产生错误。
 SELECT *  FROM (
blog
) WHERE EXTRACT(YEAR FROM
blog_dt
) = '2014'

更简单:

SELECT *  FROM (blog) WHERE YEAR(blog_dt) = 2014
请参阅手册:

返回日期的年份,范围为1000到9999,或返回日期的0 “零”日期

mysql>选择年份('1987-01-01')


你应该这样做:

SELECT * FROM (blog) WHERE EXTRACT(YEAR FROM blog_dt)= '2014' ;


在EXTRACT()函数后面有一个额外的撇号,删除它,它应该可以工作(尽管@VMai的解决方案更简单,可读性更强

您可以使用MYSQL中提供的函数DateFormat

select * FROM blog WHERE DATE_FORMAT(blog_dt,'%Y')='2014'; 

有关更多与日期相关的函数,请访问

First syntax可在PHP 7.3.5版和Laravel 5.8版中顺利运行;谢谢。
SELECT * FROM (blog) WHERE YEAR(blog_dt)='2014'; 
select * FROM blog WHERE DATE_FORMAT(blog_dt,'%Y')='2014';