2014-10-10 17 views
1

我正在尋找一種方式來從我們在今年讓SQL顯示數據 在我的頁面的數據顯示是這樣的:如何在今年捕獲SQL SELECT語句

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

但是,當我們移到2015年時,我必須更改代碼以顯示該年份數據。 所以我在想,也許SQL有一些神奇的功能,讓我這樣的顯示數據:

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

試圖在網上搜索/谷歌的答案,但我找不到寫在這個問題的好辦法一個單一的,可以理解的句子。

+0

MySQL的本地日期作爲字符串格式是'YYYY-MM-dd'。如果您將日期存儲爲varchar,以及其他格式(如您的低音 - 歐元格式),則不能對這些字符串使用'>'和<<'型操作。 YOu應該在日期/日期時間字段中存儲日期 – 2014-10-10 19:53:43

+0

對不起Marc B,我沒有編制設置日期格式的國家規則。必須堅持我們使用的格式。但我確實使用current_timestamp來設置插入日期。 Thanx回覆,但! – ChrVik 2014-10-10 20:43:52

回答

1

可以使用year功能:

SELECT * FROM test WHERE YEAR(`date`) = YEAR(NOW()) 
0
SELECT * FROM test WHERE year(date) = year(curdate()) 
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);