我有一个名为“event”的表和“year”列:
year
-----------
2013.01.01
2014.03.01
2015.02.03
如何在where子句中查询类似的内容:
SELECT * FROM event
WHERE year>=2013 to year<=year+1;
(所以“年+ 1”应该给我2014年)我不需要日期和月份。
谢谢。
答案 0 :(得分:0)
只需提供两年的年份,作为参数,无论如何都要使用:
SELECT * FROM event WHERE YEAR(year) >= ? AND YEAR(year) <= ?+1
为什么在包含整个日期时调用日期列'年'是个谜。如果你给它一个正确的名字,它会消除混淆。
答案 1 :(得分:-1)
与mysql extract year from date format相同。
你需要写像:
SELECT *, YEAR(STR_TO_DATE(year, "%Y.%m.%d")) as year2 FROM event
WHERE year2 >= 2013 AND year2 <= year2 + 1;
坦率地说,误解应该做什么“年&gt; = 2013年到年&lt; =年+ 1;”,但现在在第二年的第二年可能是正确的年份,从日期中提取。
享受! :)