我无法想办法实现这一目标。
我基本上想要在数据库中获取同年的条目。该字段是DATETIME
字段,因此很容易用它来计算。
我的问题是我不想指定一年:它应该自动使用最接近现在的那一年。所有日期都在将来,但有时今年不再有任何条目,所以它应该自动选择下一个可用日期。
我几乎肯定知道有条件语句的解决方案,但我不太了解语法,以实现它。我希望已经完成了一些事情,但我所知道的是我必须使用INTERVAL
,这在我有一年时效果很好,但这对于这种情况来说还不够。
SELECT date
FROM table WHERE
date > (NOW() + INTERVAL 1 YEAR)
有人可以帮助我吗?
答案 0 :(得分:1)
Select ...
From TableName
where `date` BETWEEN concat(year(now()) + 1, '-01-01')
AND concat(year(now()) + 1, '-12-31')
对于now() == 2011-12-23
,它会返回日期介于2012-01-01
和2012-12-31
之间的所有行。
UPD :正如@Nirmal在下面的评论中指出的那样 - 当您使用BETWEEN
时,您应该始终牢记它包含左右值。因此,上面的查询仅包含Dec 31st, 00:00:00
,实际上只有一天的一秒钟。如果你不关心这种边缘情况,这会导致一些意想不到的结果。