好吧,我有这部分查询:
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
并检查i f 2018-11-28是否在t1.installend中+-5天,在此示例中为:
如果2018-11-28
在2018-11-23
和2018-12-04
之间,它将返回TRUE。
MySQL是否可能,或者我应该编写一些代码?
答案 0 :(得分:3)
您可以使用帮助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