Php 在mysql中检查持续时间的最佳方法

Php 在mysql中检查持续时间的最佳方法,php,mysql,Php,Mysql,在我的mysql表中,有startYear、startMonth、endYear和endMonth列,它们都是整数(int)。在那里,我存储了开始的年份和月份,以及结束的年份和月份。。例如,我想存储我的汽车分期付款的期限,所以startYear将有2012年,startMonth将有8年,endYear将有2019年,endMonth将有7年 好的,既然现在实际的当前月份是9(9月)和2013年,那么对于我来说,检查当前月份和年份是否在startYear、startMonth和endYear、e

在我的mysql表中,有startYear、startMonth、endYear和endMonth列,它们都是整数(int)。在那里,我存储了开始的年份和月份,以及结束的年份和月份。。例如,我想存储我的汽车分期付款的期限,所以startYear将有2012年,startMonth将有8年,endYear将有2019年,endMonth将有7年

好的,既然现在实际的当前月份是9(9月)和2013年,那么对于我来说,检查当前月份和年份是否在startYear、startMonth和endYear、endMonth范围内的最佳方式/查询是什么?

将检查值是否大于或等于第一个数字,是否小于或等于第二个数字

IF (MONTH(CURDATE()) BETWEEN startMonth and endMonth) AND (YEAR(CURDATE()) BETWEEN startYear and endYear))
试试这个:

CURDATE() BETWEEN CONCAT_WS('-', startYear, startMonth, '01')
                  AND CONCAT_WS('-', endYear, endMonth, '31');

您可能需要考虑使用带有日期数据类型的列。这是不正确的。如果开始时间是2011年10月,结束时间是2013年2月呢。2012年1月应该介于两者之间,但上面的公式会说它不正确。是的,它不正确,但它让我找到了正确的方向:)