2016-08-23 65 views
2

所有的日期我有一些像这样的值:得到选择一年

from   to 
2012-04-01 2013-12-31 
2014-01-01 2016-08-10 
2016-08-11 2016-12-28 
2016-12-30 2017-12-20 
2017-12-21 2018-12-11 

我怎样才能得到所有值当我选择2016年。我想这一点:

from   to 
2014-01-01 2016-08-10 
2016-08-11 2016-12-28 
2016-12-30 2017-12-20 

目前我的SQL刚刚得到的值,如果既从和2016年

.... WHERE From>='2016-01-01' AND To<='2016-12-31' 

注:这是一个例子日期,所以请不要发布这样回答:

...WHERE From>='2014-01-01' AND To<='2017-12-20' 
+0

为什么不仅仅根据年份进行过滤。像(伪代码)'WHERE From Like'2016%'或Like To'2016%'' –

+0

您使用的是哪个数据库? –

回答

2

可以使用YEAR功能:

SELECT from, 
     to 
FROM yourTable 
WHERE YEAR(from) = 2016 OR 
     YEAR(to) = 2016 

这将保留任何记录,其日期为from日期 a to日期位于2016日历年。

+0

非常感谢。现在我意识到mysql有这个功能:)) – user3064132