mysql 查询30天前的数据
时间: 2025-03-20 17:06:40 浏览: 19
### 查询 MySQL 中 30 天前的数据
为了查询 MySQL 数据库中 30 天前的数据,可以利用 SQL 的日期函数来实现。假设有一个名为 `test` 的表,其中有一列 `started_at` 存储时间戳值,则可以通过以下方法筛选出早于当前时间 30 天的数据。
#### 使用 DATE_SUB 函数
以下是具体的 SQL 查询语句:
```sql
SELECT *
FROM test
WHERE started_at < DATE_SUB(CURDATE(), INTERVAL 30 DAY);
```
上述查询会返回 `started_at` 列中小于当前日期减去 30 天的所有记录[^1]。
如果需要更精确的时间比较(例如考虑小时、分钟),则可以用 NOW() 替代 CURDATE():
```sql
SELECT *
FROM test
WHERE started_at < DATE_SUB(NOW(), INTERVAL 30 DAY);
```
此查询能够更加精准地处理带有时间部分的字段。
#### 表存储空间统计
对于了解每张表所占存储空间的情况,可执行如下命令:
```sql
SELECT table_schema AS `Database`,
table_name AS `Table`,
CONCAT(ROUND(((data_length + index_length) / 1024 / 1024 / 1024), 2),' G') `Size`
FROM information_schema.tables
WHERE table_schema='your_database_name'
ORDER BY (data_length + index_length) DESC;
```
只需替换 `'your_database_name'` 为实际使用的数据库名称即可获得相应结果[^3]。
#### 升级注意事项
当涉及 MySQL 版本升级时需要注意不同版本间可能存在的兼容性问题以及新特性支持情况。通常有两种主要方式进行 MySQL 升级操作——原地升级与逻辑备份恢复法[^2]。
阅读全文
相关推荐
















