MySQL 获取昨日、今日、明日及前后一小时日期时间

1 下载量 68 浏览量 更新于2024-09-01 收藏 83KB PDF 举报
"这篇内容主要介绍了在MySQL中如何获取昨天、今天、明天的日期以及前一小时和后一小时的时间,通过使用`DATE_SUB`和`DATE_ADD`函数结合`INTERVAL`关键字来实现。此外,还展示了如何获取当前日期和时间以及前一天的年份。" 在MySQL中,日期和时间的处理是非常常见的操作,尤其是在数据分析和报表生成时。本文提供的SQL语句可以帮助我们快速获取特定日期和时间的近似值。 1. **当前日期**: 使用`CURDATE()`函数可以获取当前的日期,例如: ```sql SELECT CURDATE(); ``` 结果将显示当前的年月日,如`2022-09-28`。 2. **明天日期**: 通过`DATE_SUB()`函数减去一天来获取明天的日期: ```sql SELECT DATE_SUB(CURDATE(), INTERVAL -1 DAY); ``` 这里的`INTERVAL -1 DAY`表示减去一天。 3. **昨天日期**: 同理,获取昨天日期可以使用`DATE_SUB()`函数加上一天: ```sql SELECT DATE_SUB(CURDATE(), INTERVAL 1 DAY); ``` 4. **前一小时时间**: 使用`DATE_SUB()`和`NOW()`函数结合`INTERVAL 1 HOUR`可以得到当前时间前一小时的时间: ```sql SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); ``` 5. **后一小时时间**: 要获取后一小时的时间,只需要将`INTERVAL`的负号去掉: ```sql SELECT DATE_SUB(NOW(), INTERVAL -1 HOUR); ``` 6. **前30分钟时间** 和 **后30分钟时间**: 类似地,可以使用`DATE_ADD()`函数添加或减去30分钟: ```sql SELECT DATE_ADD(NOW(), INTERVAL -30 MINUTE); SELECT DATE_ADD(NOW(), INTERVAL 30 MINUTE); ``` 7. **取得当天**: `CURDATE()`同样可以用来获取当前日期,不包含时间部分: ```sql SELECT CURDATE(); ``` 8. **当前日期和时间**: `NOW()`函数可以返回当前的日期和时间: ```sql SELECT NOW(); ``` 9. **前一天的年份**: 如果需要获取前一天的年份,可以这样计算: ```sql SELECT YEAR(DATE_SUB(CURDATE(), INTERVAL 1 DAY)); ``` 这些函数在日常的SQL查询中非常实用,尤其是在需要基于特定日期范围进行数据筛选时。例如,你可以轻松地构建查询来获取过去24小时内的所有记录,或者在过去的一天内发生的所有事件。 `DATE_SUB`和`DATE_ADD`函数允许我们根据需要动态调整日期和时间,而`INTERVAL`关键字则提供了灵活的时间间隔选择,如天、小时、分钟等。这使得在MySQL中处理日期和时间变得更加便捷。在实际应用中,可以根据业务需求,结合其他日期和时间函数,比如`DATE_FORMAT`进行格式化输出,以满足不同的展示和分析需求。