如何在SELECT中找到一年中的第一天?
SELECT `DATE`,`SomeValue1`,`SomeValue2`
FROM `SomeTableName`
WHERE (`DATE` >= [...first day of the year in date format...])
我发现这个月 - 但我没有足够的掌握一年: (我正在寻找一个单独的查询来查找月初和现在之间的数据)
WHERE (`DATE` between DATE_FORMAT(NOW() ,'%Y-%m-01') AND NOW() )
答案 0 :(得分:19)
我认为你需要:
WHERE (`DATE` between DATE_FORMAT(NOW() ,'%Y-01-01') AND NOW() )
说实话,你可以这样做:
WHERE (`DATE` between DATE_FORMAT(NOW() ,'%Y') AND NOW() )
答案 1 :(得分:12)
为了获得当年的第一天,我使用:
SELECT MAKEDATE(year(now()),1);
所以在你的查询中你会写:
where `date` >= MAKEDATE(year(now()),1)
在过去整整两年里,我经常做类似销售报告的事情,但我总是希望从一年开始。因此显示了2年的全年和今年的年份。
where date>= MAKEDATE(year(now()-interval 2 year),1)
但为了进一步复杂化,我们的财政年度从5月1日开始。我总是想在5月1日开始。
where date >= MAKEDATE(year(now()-interval 2 year),1) + interval 120 day
或作为替代
where date >= MAKEDATE(year(now()-interval 2 year),121)
五月一日是一年中的第121天。但这种方法在闰年不起作用。
闰年证明版本是:
where date => select MAKEDATE(year(now()-interval 5 year),1) + interval 4 month
无论是否为闰年,都将返回xxxx-05-01日期。
答案 2 :(得分:4)
如果上述情况适用于本月,那么这将适用于当年:
WHERE (`DATE` between DATE_FORMAT(NOW() ,'%Y-01-01') AND NOW() )
答案 3 :(得分:0)
不知道为什么,但就我而言,浏览300万。记录最快的方法是:
where `DATE` >= CONCAT(YEAR(NOW()),'-01-01')