两个日期之间的SQL搜索结果

时间:2019-01-09 07:50:40

标签: mysql sql ajax

我有一个表名预期费用,其中我有4列名称Expense_title,Amount,expense_category,date,并且所有4列均具有var char类型。当我尝试查找两个日期之间的费用时,它可以在同一年正常运行,例如2018年11月27日和2018年12月27日,但是当我尝试在两年之间找到支出时没有任何结果,例如12/27/2018和01/27/2019。请帮助

我正在尝试查询

SELECT *
from expected_expense
WHERE Date BETWEEN '$start_date' AND '$end_date'

1 个答案:

答案 0 :(得分:1)

根据评论,这是因为varchar类型。

between运算符与对其范围限制进行两个闭合不等式没什么不同。在您的示例中 between 12/27/2018 And 01/27/2019

将在内部更改为

>= 12/27/2018 and <= 01/27/2019

但是这些不是日期,而是文本。第二个小于第一个,因此不会返回任何内容。这就像在问一个问题:哪个字母在q之后但在b之前?没有。

将字段更改为日期时间,或在查询中使用转换功能。