热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MySQL时间查询:获取今天、本周、上周、本月和上个月的数据

本文详细介绍了如何使用MySQL查询特定时间段的数据,包括今天、本周、上周、本月和上个月的数据。适合对MySQL查询感兴趣的读者。
在 MySQL 中,查询特定时间段的数据是常见的需求。以下是几种常用的 SQL 语句,用于获取今天、本周、上周、本月和上个月的数据。

### 查询今天的数据
```sql
SELECT name, submittime FROM enterprise WHERE DATE_FORMAT(submittime, '%Y-%m-%d') = DATE_FORMAT(NOW(), '%Y-%m-%d');
```

### 查询当前周的数据
```sql
SELECT name, submittime FROM enterprise WHERE YEARWEEK(DATE_FORMAT(submittime, '%Y-%m-%d')) = YEARWEEK(NOW());
```

### 查询上周的数据
```sql
SELECT name, submittime FROM enterprise WHERE YEARWEEK(DATE_FORMAT(submittime, '%Y-%m-%d'), 1) = YEARWEEK(DATE_SUB(CURDATE(), INTERVAL 7 DAY), 1);
```

### 查询当前月份的数据
```sql
SELECT name, submittime FROM enterprise WHERE DATE_FORMAT(submittime, '%Y-%m') = DATE_FORMAT(NOW(), '%Y-%m');
```

### 查询距离当前6个月的数据
```sql
SELECT name, submittime FROM enterprise WHERE submittime BETWEEN DATE_SUB(NOW(), INTERVAL 6 MONTH) AND NOW();
```

### 查询上个月的数据
```sql
SELECT name, submittime FROM enterprise WHERE DATE_FORMAT(submittime, '%Y-%m') = DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 1 MONTH), '%Y-%m');
```

#### 按周统计的注意事项
默认情况下,`YEARWEEK()` 函数以周日作为一周的开始。如果你需要以周一或周六作为一周的开始,可以通过调整参数来实现。例如,以周一作为一周的开始:
```sql
SELECT YEARWEEK(DATE_ADD(now(), INTERVAL 1 DAY));
```

#### 获取每周的第一天和最后一天
- 当前周的第一天:
```sql
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) + 1 DAY);
```
- 当前周的最后一天:
```sql
SELECT DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) - 5 DAY);
```

#### 获取每月的第一天和最后一天
- 当前月的第一天:
```sql
SELECT CONCAT(DATE_FORMAT(LAST_DAY(NOW()), '%Y-%m-'), '01');
```
- 当前月的最后一天:
```sql
SELECT LAST_DAY(NOW());
```

#### 获取每季度的第一天和最后一天
- 当前季度的第一天:
```sql
SELECT CONCAT(DATE_FORMAT(LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()), 1) + INTERVAL QUARTER(CURDATE()) * 3 - 3 MONTH), '%Y-%m-'), '01');
```
- 当前季度的最后一天:
```sql
SELECT LAST_DAY(MAKEDATE(EXTRACT(YEAR FROM CURDATE()), 1) + INTERVAL QUARTER(CURDATE()) * 3 - 1 MONTH);
```

#### UNIX 时间戳与日期之间的转换
- 将 UNIX 时间戳转换为日期:
```sql
SELECT FROM_UNIXTIME(1156219870);
```
- 将日期转换为 UNIX 时间戳:
```sql
SELECT UNIX_TIMESTAMP('2006-11-04 12:23:00');
```

#### 其他常用的时间查询
- 查询昨天的数据:
```sql
SELECT * FROM 表名 WHERE TO_DAYS(NOW()) - TO_DAYS(时间字段名) <= 1;
```
- 查询近7天的数据:
```sql
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名);
```
- 查询近30天的数据:
```sql
SELECT * FROM 表名 WHERE DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名);
```

以上内容涵盖了 MySQL 中常见的时间段查询方法,希望能帮助您更高效地处理时间相关的数据。
推荐阅读
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文深入探讨 MyBatis 中动态 SQL 的使用方法,包括 if/where、trim 自定义字符串截取规则、choose 分支选择、封装查询和修改条件的 where/set 标签、批量处理的 foreach 标签以及内置参数和 bind 的用法。 ... [详细]
  • 本文深入探讨了 Java 中的 Serializable 接口,解释了其实现机制、用途及注意事项,帮助开发者更好地理解和使用序列化功能。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
author-avatar
mobiledu2502860983
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有