本文共 1423 字,大约阅读时间需要 4 分钟。
以下是一些基于MySQL的常见数据查询优化方法,适用于日志记录、数据分析等场景。
SELECT current_date();
SELECT current_time();
SELECT current_timestamp();
SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now());
SELECT * FROM 表名 WHERE to_days(时间字段名) <= to_days(now()) - 1;
SELECT * FROM 表名 WHERE date_sub(curdate(), interval 7 day) <= 时间字段名;
SELECT * FROM 表名 WHERE date_sub(curdate(), interval 30 day) <= 时间字段名;
SELECT * FROM 表名 WHERE date_format(时间字段名, '%Y%m') = date_format(curdate(), '%Y%m');
SELECT * FROM 表名 WHERE period_diff(date_format(now(), '%Y%m'), date_format(时间字段名, '%Y%m')) = 1;
SELECT * FROM 表名 WHERE quarter(时间字段名) = quarter(now());
SELECT * FROM 表名 WHERE quarter(时间字段名) = quarter(date_sub(now(), interval 1 quarter));
SELECT * FROM 表名 WHERE year(时间字段名) = year(now());
SELECT * FROM 表名 WHERE year(时间字段名) = year(date_sub(now(), interval 1 year));
SELECT * FROM 表名 WHERE yearweek(date_format(时间字段名, '%Y-%m-%d')) = yearweek(now());
SELECT * FROM 表名 WHERE yearweek(date_format(时间字段名, '%Y-%m-%d')) = yearweek(now()) - 1;
SELECT * FROM 表名 WHERE date_format(时间字段名, '%Y-%m') = date_format(now(), '%Y-%m');
SELECT * FROM 表名 WHERE 时间字段名 >= date_sub(now(), interval 6 month) AND 时间字段名 <= now();
这些查询方法涵盖了从单日到长期时间范围的数据提取需求,适用于日志分析、数据迁移等场景。
转载地址:http://aybfk.baihongyu.com/