Php 如何比较日期类型之间的数据范围;“文本”;

Php 如何比较日期类型之间的数据范围;“文本”;,php,mysql,Php,Mysql,我需要比较两个日期类型“文本”。 我的问题是,我的日期存在于数据库中,而另一个日期不存在。如何进行比较两个日期类型“文本”的查询,第一个日期存在,第二个日期不存在。以下是我在2017年和2016年数据库中的示例数据 我的查询是SELECT*FROM oec2,其中oec\u month1'和'oec\u month2'之间的oec\u月 注意:数据库中存在$oec_month1(日期类型文本),但不存在$oec_month2 如果我使用该查询,请给出2017年和2016年的结果 $db=n

我需要比较两个日期类型“文本”。 我的问题是,我的日期存在于数据库中,而另一个日期不存在。如何进行比较两个日期类型“文本”的查询,第一个日期存在,第二个日期不存在。以下是我在2017年和2016年数据库中的示例数据

我的查询是
SELECT*FROM oec2,其中oec\u month1'和'oec\u month2'之间的oec\u月
注意:数据库中存在$oec_month1(日期类型文本),但不存在$oec_month2

如果我使用该查询,请给出2017年和2016年的结果

$db=new ezSQL\u mysqli(db\u用户、db\u密码、db\u名称、db\u主机);
$field='date';
$sort='ASC';
如果(isset($\u GET['search'])){
$branch_id=$db->escape((int)($_GET['branch_id']);
$branch\u region=$\u GET['branch\u region'];
$oec_month1=$_GET['oec_month1'];
$oec_month2=$_GET['oec_month2'];
如果(isset($\u GET['sorting'])){
如果($_GET['sorting']='ASC'){$sort='DESC';$dir=“down”}
else{$sort='ASC';$dir=“up”}
}
如果($\u GET['field']=='result'){$field=“result”;}
如果($_GET['field']='oecgrade'){$field=“oecgrade”;}
如果($_GET['field']='risk'){$field=“risk”;}
如果(!空($oec_month1)){
如果(!empty($oec_month2)){$searchquery.=“和(oec_month1'和'$oec_month2'之间的oec_月”);}
else{$searchquery.=“和oec_month>='$oec_month1'”

}否则,如果(!empty($oec_month2)){$searchquery.=”和oec_month您可以使用
STR_TO_DATE()
将文本转换为适当的支持日期格式,则可以比较日期之间的值

示例:

如果
$oec\u month1
$oec\u month1
包含以下日期格式:

$oec_month1 = "01/2017";
$oec_month2 = "01/2017";
然后,它可能类似于以下示例:

SELECT * FROM oec2 WHERE oec_month >= STR_TO_DATE($oec_month1, '%m/%Y') AND oec_month <= STR_TO_DATE($oec_month2, '%m/%Y')

SELECT*FROM oec2,其中oec_month>=STR_TO_DATE($oec_month1,%m/%Y))和oec_month1感谢您的回答。您的查询正在运行。但是,如果$oec_month2包含数据库中不存在的“02/2017”,该$oec_month2又如何呢?如果$oec_month1=“01/2017”和$oec_month2=“02/2017”,您的查询结果将没有输出“请在此处共享您的
php
代码,并尝试我的更新答案,告诉我是否工作。我的数据库中有日期“01/2017”。但我没有日期“02/2017”。我需要从选择的日期1和日期2中进行输出。例如:用户选择数据库中的日期1作为“01/2017”。日期2作为“02/2017”这不在数据库中。如果我使用我的旧查询,它会给出2017年(包括2016年)的结果。它应该给出2017年的结果,因为用户选择的范围在“2017年1月”和“2017年2月”之间。谢谢。请参阅
SELECT * FROM oec2 WHERE oec_month >= STR_TO_DATE($oec_month1, '%m/%Y') AND oec_month <= STR_TO_DATE($oec_month2, '%m/%Y')