如何在mySQL中查询两天之间的日期字段

如何在mySQL中查询两天之间的日期字段,mysql,Mysql,我知道如何在Oracle中实现,但在mySQL中找不到相同的函数。 试着用谷歌搜索,但找不到 我有一个表,有一个字段名“create_date”,属性是datetime 所以字段值格式看起来像“2009-09-2511:48:24” 现在我想添加日期条件,我想查找2009/09/01到2009/10/14之间的创建日期 我的sql命令: 其中1=1和日期格式(创建日期,%d/%m/%Y'),介于2009年9月1日和2009年10月14日之间 没关系,我可以得到数据 但当我将开始日期更改为2009

我知道如何在Oracle中实现,但在mySQL中找不到相同的函数。 试着用谷歌搜索,但找不到

我有一个表,有一个字段名“create_date”,属性是datetime 所以字段值格式看起来像“2009-09-2511:48:24”

现在我想添加日期条件,我想查找2009/09/01到2009/10/14之间的创建日期 我的sql命令: 其中1=1和日期格式(创建日期,%d/%m/%Y'),介于2009年9月1日和2009年10月14日之间

没关系,我可以得到数据 但当我将开始日期更改为2009/09/30时,结束日期是相同的

日期格式(在“2009年9月30日”和“2009年10月14日”之间创建日期“%d/%m/%Y”)

没有结果。。。 但若我将开始日期更改为2009/10/01,我可以再次获得结果。
我只是想知道发生了什么?我认为你在错误的事情上使用了一个函数(
DATE\u FORMAT
):你应该
STR\u to\u DATE
你的参数,让MySQL做一个日期范围比较,而不是把行值转换成一个字符串并做一个字符串范围比较(我甚至不确定这是否有意义或在所有情况下都有效)。试试这个:

SELECT ...
  FROM my_table t
 WHERE t.create_date BETWEEN STR_TO_DATE('2009/09/01', '%Y/%m/%d')
                         AND STR_TO_DATE('2009/10/01', '%Y/%m/%d')
我认为这样会更好