From a6c49841f1fbd23a202b9cc8b16fbc0f9fa7c7e0 Mon Sep 17 00:00:00 2001 From: syruan <15555146157@163.com> Date: Sat, 6 Sep 2025 17:49:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=93=E7=AE=97=E5=8C=BA?= =?UTF-8?q?=E9=97=B4=E8=B4=B9=E7=94=A8=E6=9F=A5=E8=AF=A2=20SQL=20=E6=9D=A1?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将时间比较逻辑从 BETWEEN改为 >= 和 <= 操作符 - 使用 DATE() 函数提取日期进行比较,确保时间比较的准确性 - 简化跨区间租赁条件,提高 SQL 可读性 --- .../settlement/SltAgreementInfoMapper.xml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/settlement/SltAgreementInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/settlement/SltAgreementInfoMapper.xml index a0d76323..2d332883 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/settlement/SltAgreementInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/settlement/SltAgreementInfoMapper.xml @@ -1197,33 +1197,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" (bai.is_slt = 1 AND ( - (sai.start_time IS NOT NULL AND sai.start_time BETWEEN #{startDate} AND #{endDate}) + (sai.start_time IS NOT NULL AND DATE(sai.start_time) >= #{startDate} AND DATE(sai.start_time) <= #{endDate}) OR - (sai.end_time IS NOT NULL AND sai.end_time BETWEEN #{startDate} AND #{endDate}) + (sai.end_time IS NOT NULL AND DATE(sai.end_time) >= #{startDate} AND DATE(sai.end_time) <= #{endDate}) OR - (sai.slt_time IS NOT NULL AND sai.slt_time BETWEEN #{startDate} AND #{endDate}) + (sai.slt_time IS NOT NULL AND DATE(sai.slt_time) >= #{startDate} AND DATE(sai.slt_time) <= #{endDate}) OR - (sai.start_time IS NOT NULL AND sai.start_time < #{startDate} AND - ((sai.end_time IS NOT NULL AND sai.end_time > #{endDate}) OR - (sai.slt_time IS NOT NULL AND sai.slt_time > #{endDate}))) + (sai.start_time IS NOT NULL AND DATE(sai.start_time) < #{startDate} AND + ((sai.end_time IS NOT NULL AND DATE(sai.end_time) > #{endDate}) OR (sai.slt_time IS NOT NULL AND DATE(sai.slt_time) > #{endDate}))) )) OR ((bai.is_slt = 0 OR bai.is_slt IS NULL) AND ( - (sai.start_time IS NOT NULL AND sai.start_time BETWEEN #{startDate} AND #{endDate}) + (sai.start_time IS NOT NULL AND DATE(sai.start_time) >= #{startDate} AND DATE(sai.start_time) <= #{endDate}) OR - (sai.end_time IS NOT NULL AND sai.end_time BETWEEN #{startDate} AND #{endDate}) + (sai.end_time IS NOT NULL AND DATE(sai.end_time) >= #{startDate} AND DATE(sai.end_time) <= #{endDate}) OR - (sai.start_time IS NOT NULL AND sai.start_time < #{startDate} AND (sai.end_time IS NULL OR sai.end_time > #{endDate})) + (sai.start_time IS NOT NULL AND DATE(sai.start_time) < #{startDate} AND (sai.end_time IS NULL OR DATE(sai.end_time) > #{endDate})) OR - (sai.status = '0' AND sai.start_time IS NOT NULL AND sai.start_time <= #{endDate}) + (sai.status = '0' AND sai.start_time IS NOT NULL AND DATE(sai.start_time) <= #{endDate}) )) )