SQL - 仅获取当前年度的结果

Md.*_*man 11 mysql sql date

如何使用SQL获取当前年份的结果?

我有一个表格,其中包含格式的列日期yyyy-mm-dd.

现在,我想做只返回当前年度结果的select查询.

伪代码应该像:

select * from table where date is (current year dates)
Run Code Online (Sandbox Code Playgroud)

结果应如下:

id date
2  2015-01-01
3  2015-02-01
9  2015-01-01
6  2015-02-01
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Joh*_*nde 33

用于YEAR()仅获取您要使用的日期年份:

select * from table where YEAR(date) = YEAR(CURDATE())
Run Code Online (Sandbox Code Playgroud)


axi*_*iac 8

使用WHERE YEAR(date) = YEAR(CURDATE())是正确的但date如果存在则不能在列上使用索引; 如果它不存在它应该.

更好的解决方案是:

SELECT *
FROM tbl
WHERE `date` BETWEEN '2015-01-01' AND '2015-12-31'
Run Code Online (Sandbox Code Playgroud)

需要从客户端代码生成日期(一年的第一天和最后一天).


jmr*_*ink 6

当我在 SQL 服务器上尝试这些答案时,我收到一条错误消息,指出 curdate() 不是一个可识别的函数。

如果您遇到相同的错误,使用 getdate() 而不是 curdate() 应该可以工作!