检查日期列是否在某个依赖于另一个日期列的时段内

vsnjm48y  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(320)

我有一个问题:

round(if(((t1.docType=1 and t1.installments=1) or (t1.docType=3 and t1.installend=t1.insend)), "", t1.premiaPaid),2) AS custom_field

问题来自这里 t1.installend=t1.insend 哪里:

t1.installend = 2018-11-29
t1.insend = 2018-11-28

它在这个形式中返回false,但是我希望这部分条件返回true,所以我想得到 t1.insend 检查2018-11-28是否在t1.installend+-5天内,在本例中:
如果 2018-11-28 介于 2018-11-23 以及 2018-12-04 它会让我回到现实。
有没有可能用mysql或者我应该写一些代码?

vxf3dgd4

vxf3dgd41#

可以使用help interval语句计算日期范围的开始和结束。例如:

SELECT
  t1.installend - INTERVAL 5 DAY, /*start date*/
  t1.installend + INTERVAL 5 DAY  /*end date*/
FROM <your table name>

此外,还可以使用between语句检查日期范围中是否存在日期。例如:

t1.insend BETWEEN t1.installend - INTERVAL 5 DAY AND t1.installend + INTERVAL 5 DAY

相关问题