如何在SQL SELECT语句中捕获今年

时间:2014-10-10 19:51:32

标签: mysql sql date

我正在寻找一种方法让SQL显示我们所在年份的数据。 在我的页面上,数据显示如下:

SELECT * FROM test WHERE date > '01.01.2014'  (European date style)

但是当我们搬到2015年时,我必须更改代码以显示年份数据。 所以我在想,也许SQL有一些神奇的功能可以让我显示这样的数据:

SELECT * FROM test WHERE date = 'this.year'

尝试搜索网页/谷歌搜索答案,但我找不到一个好的方法来将问题写在一个可理解的句子中。

3 个答案:

答案 0 :(得分:1)

一种简单的方法是:

SELECT *
FROM test
WHERE year(date) = year(now());

更高级的方法是避免date上的功能。这允许使用索引:

SELECT *
FROM test
WHERE date >= makedate(year(now()), 1) and
      date < makedate(year(now()) + 1, 1);

答案 1 :(得分:1)

您可以使用year功能:

SELECT * FROM test WHERE YEAR(`date`) = YEAR(NOW())

答案 2 :(得分:0)

SELECT * FROM test WHERE year(date) = year(curdate())