MySQL日期分为日/月/年

时间:2014-10-29 00:08:49

标签: php mysql date

我有一张名为schedules的桌子。它有三列daymonthyear,即日程/月/年。这里没有时间戳。我选择了这种格式,以便我可以检索10月或2014年的所有时间表。

但是,是否可以检索给定范围的时间表,例如从2014年9月10日到2014年10月9日?问题是,如果我使用

WHERE 'day' > 10 AND 'day' < 9 ...

不会返回任何内容,因为即使10月(10月)大于9月(9),月份的日期也会错过这个!

是否有办法或者我是否还需要包含带时间戳的第四个date列?

1 个答案:

答案 0 :(得分:2)

您可以使用括号和or子句:

WHERE ('month' = '9' AND 'day' > 10) OR ('month' = '10' AND 'day' < 9)

但是,使用日期时间字段会更好,因为您仍然可以轻松获得月/日/年:

WHERE MONTH(field) = 10
WHERE DAY(field) = 3
WHERE YEAR(field) = 2014

然后你也可以做

 WHERE field >= '2014-09-10' AND field <= '2014-10-09'

有关mysql中所有日期/时间函数的文档,请参阅http://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html