Java删除MySQL库中时间戳为毫秒级的,超过三个月的,非整点的数据
时间: 2024-03-03 22:46:48 浏览: 65
Java将日期类型Date时间戳转换为MongoDB的时间类型数据
你可以使用Java中的JDBC API与MySQL数据库进行交互,使用DELETE语句删除满足条件的数据。具体步骤如下:
1. 使用JDBC API连接MySQL数据库,建立连接并创建Statement对象。
2. 构造DELETE语句,使用MySQL的DATE_SUB函数计算出三个月前的时间,并使用MySQL的DATE_FORMAT函数格式化时间戳为整点时间。
3. 执行DELETE语句,删除符合条件的数据。
下面是示例代码:
```java
import java.sql.*;
public class DeleteData {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/mydb";
String user = "username";
String password = "password";
Connection conn = null;
Statement stmt = null;
try {
// 建立连接
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
// 构造DELETE语句
String sql = "DELETE FROM mytable WHERE timestamp < DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 3 MONTH), '%Y-%m-%d 00:00:00') AND timestamp % 1000 <> 0";
// 执行DELETE语句
int rows = stmt.executeUpdate(sql);
System.out.println(rows + " rows deleted.");
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 关闭连接
try {
if (stmt != null) stmt.close();
if (conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
```
其中,`mydb`是数据库名,`mytable`是表名,`timestamp`是时间戳列名。该代码会删除`mytable`表中时间戳小于三个月前的、非整点的数据。
阅读全文