博客
关于我
Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
阅读量:794 次
发布时间:2023-02-10

本文共 1423 字,大约阅读时间需要 4 分钟。

查看与数据查询优化指南

以下是一些基于MySQL的常见数据查询优化方法,适用于日志记录、数据分析等场景。

1. 查看当前日期

SELECT current_date();

2. 查看当前时间

SELECT current_time();

3. 查看当前时间与日期

SELECT current_timestamp();

4. 查询当天所有记录

SELECT * FROM 表名 WHERE to_days(时间字段名) = to_days(now());

5. 查询昨天的记录

SELECT * FROM 表名 WHERE to_days(时间字段名) <= to_days(now()) - 1;

6. 查询过去7天的记录

SELECT * FROM 表名 WHERE date_sub(curdate(), interval 7 day) <= 时间字段名;

7. 查询过去30天的记录

SELECT * FROM 表名 WHERE date_sub(curdate(), interval 30 day) <= 时间字段名;

8. 查询本月的记录

SELECT * FROM 表名 WHERE date_format(时间字段名, '%Y%m') = date_format(curdate(), '%Y%m');

9. 查询上一月的记录

SELECT * FROM 表名 WHERE period_diff(date_format(now(), '%Y%m'), date_format(时间字段名, '%Y%m')) = 1;

10. 查询本季度的记录

SELECT * FROM 表名 WHERE quarter(时间字段名) = quarter(now());

11. 查询上季度的记录

SELECT * FROM 表名 WHERE quarter(时间字段名) = quarter(date_sub(now(), interval 1 quarter));

12. 查询本年的记录

SELECT * FROM 表名 WHERE year(时间字段名) = year(now());

13. 查询上年的记录

SELECT * FROM 表名 WHERE year(时间字段名) = year(date_sub(now(), interval 1 year));

14. 查询当前周的记录

SELECT * FROM 表名 WHERE yearweek(date_format(时间字段名, '%Y-%m-%d')) = yearweek(now());

15. 查询上周的记录

SELECT * FROM 表名 WHERE yearweek(date_format(时间字段名, '%Y-%m-%d')) = yearweek(now()) - 1;

16. 查询当前月份的记录

SELECT * FROM 表名 WHERE date_format(时间字段名, '%Y-%m') = date_format(now(), '%Y-%m');

17. 查询过去6个月的记录

SELECT * FROM 表名 WHERE 时间字段名 >= date_sub(now(), interval 6 month) AND 时间字段名 <= now();

这些查询方法涵盖了从单日到长期时间范围的数据提取需求,适用于日志分析、数据迁移等场景。

转载地址:http://aybfk.baihongyu.com/

你可能感兴趣的文章
MySQL 的全局锁、表锁和行锁
查看>>
mysql 的存储引擎介绍
查看>>
MySQL 的存储引擎有哪些?为什么常用InnoDB?
查看>>
mysql 索引
查看>>
MySQL 索引失效的 15 种场景!
查看>>
MySQL 索引深入解析及优化策略
查看>>
MySQL 索引的面试题总结
查看>>
mysql 索引类型以及创建
查看>>
MySQL 索引连环问题,你能答对几个?
查看>>
Mysql 索引问题集锦
查看>>
Mysql 纵表转换为横表
查看>>
mysql 编译安装 window篇
查看>>
mysql 网络目录_联机目录数据库
查看>>
MySQL 聚簇索引&&二级索引&&辅助索引
查看>>
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>