如何使用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)
使用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)
需要从客户端代码生成日期(一年的第一天和最后一天).
当我在 SQL 服务器上尝试这些答案时,我收到一条错误消息,指出 curdate() 不是一个可识别的函数。
如果您遇到相同的错误,使用 getdate() 而不是 curdate() 应该可以工作!
| 归档时间: |
|
| 查看次数: |
31117 次 |
| 最近记录: |