2009-10-14 80 views
0

我知道如何在Oracle中完成它,但在mySQL中找不到相同的函数。 尝试谷歌它..但无法找到它。如何在mySQL中查询两天之间的日期字段

我有一个表,有一个字段名“CREATE_DATE”,属性为datetime 所以字段值的格式类似于“2009-09-25 11时48分24秒”

现在我想添加日期条件,我想在2009/09/01至2009/10/14之间找到create_date my sql命令: 其中1 = 1和date_format(create_date,'%d /%m /%Y')BETWEEN '01/09/2009' AND '14 /2009分之10'

它OK..I可以得到rowdata 但是当我开始改变日期2009/09/30,结束日期是相同

DATE_FORMAT(CREATE_DATE, '%d /%米/%Y')之间的'30/09/2009' AND '14/10/2009'

和无结果... 但如果我将开始日期更改为2009/10/01,我可以再次获得结果。 我只是想知道发生了什么?它应该罚款到

回答

1

我认为你使用一个函数(DATE_FORMAT)上的错误的事情:你应该STR_TO_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') 

我认为那样会更好。

相关问题