这个 SQL 的问题是日期范围的筛选条件不正确。在 WHERE 子句中,使用了 DATE_FORMAT 函数来格式化日期,但是格式化后的日期是字符串类型,无法正确比较日期范围。

正确的写法应该是使用大于等于和小于等于操作符来比较日期范围,如下所示:

SELECT
    vesi.`name`,
    COUNT(*)
FROM
    v4_contract vc
    LEFT JOIN v4_ebox.v4_customer vvc ON vc.customer_id = vvc.id 
    LEFT JOIN v4_ebox.v4_customer_intention vvci ON vvci.customer_id = vc.customer_id
    LEFT JOIN v4_ebox.sys_industry vesi ON vvc.trade_parent_id = vesi.id AND vesi.is_del = 0
WHERE
    vc.signing_time >= '2023-04-01' AND vc.signing_time <= '2023-06-30'

以上修改后的 SQL 将筛选出签约时间在 2023 年 4 月 1 日至 2023 年 6 月 30 日之间的数据。

SQL 日期范围筛选错误及修正方法

原文地址: https://www.cveoy.top/t/topic/qqJz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录