SQL数据库中如何查询包含多个日期值的字段特定日期范围的数据?

方法 1 :使用 FIND_IN_SET 和 REPLACE 查找以逗号分隔的日期。
MySQL等,字段中用逗号分隔日期,过滤[startDate, endDate],移动空格,FIND_IN_SET。

方法二:优化设计,使用关系表。
频繁的范围查询,避免一个字段存储多个日期,主表+日期相关表,构建索引。

方法三:替换为其他数据库。
PostgreSQL,字符串到数组分割; SQLServer,STRING_SPLIT。

性能低,统一格式和去重。

一个短期,两个长期,自己掂量一下。

SQL SELECT 怎么实现按时间范围筛选?

使用WHERE+BETWEEN或比较运算符来过滤SQL时间范围。

2 02 4 年1 月DATE类型数据: sql 从订单中选择订单日期,其中 order_date 位于“2 02 4 -01 -01 ”和“2 02 4 -01 -3 1 ”之间
2 02 4 年 1 月 DATETIME 类型的数据: sql 从订单中选择 WHERE order_time >= '2 02 4 -01 -01 00:00:00' AND order_time < '2 02 4 -02 -01 00:00:00'
如何在MySQL中写入最近7 天的数据: sql 从日志中选择,其中 log_time >= DATE_SUB(NOW(), INTERVAL 7 DAY)
UTC 转移至东八区: sql 从事件中选择 WHERE CONVERT_TZ(event_time, '+00:00', '+08 :00') BETWEEN '2 02 4 -05 -01 00:00:00' 和 '2 02 4 -05 -01 2 3 :5 9 :5 9 '
实用提醒:使用CONVERT_TZ进行时区转换,不要忘记方向。