无论年数如何,都在MySql中检索日期

时间:2011-11-04 08:08:01

标签: mysql date

我的日期存储在我的MySQL数据库中。 (例如:1992-12-12,1983-01-02,1983-01-05,1983-01-10)

我想仅在日期和时间比较这些日期。无论多年,都以月为基础。

此外,我想检索日期介于 1月2日 1月5日之间的记录,无论年份如何。

我该怎么做? 请帮助MySQL查询。

2 个答案:

答案 0 :(得分:0)

首先创建一个函数来仅提取日期的日期和月份(我已经尽我所知写了,可能有比这更优化的方法):

CREATE FUNCTION daymonth (date DATE)
RETURNS DATE
RETURN STR_TO_DATE(CONCAT(CONCAT((EXTRACT(MONTH FROM date)),'-'),(EXTRACT(DAY FROM date))),'%m-%d');

然后在查询中调用该函数:

SELECT date
FROM ...
WHERE daymonth(date) BETWEEN daymonth('2011-01-02') AND daymonth('2011-01-05');

我想进一步讨论这个问题。 :) -Sandip

答案 1 :(得分:0)

此请求应该可以满足您的需求。但是由于第29届,这在2月之后不会完美地发挥作用

SELECT date
FROM ...
WHERE DAYOFYEAR(date) BETWEEN DAYOFYEAR('2011-01-02') AND DAYOFYEAR('2011-01-05');