Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Làm cách nào để lấy dấu thời gian trong Java và lưu trữ trong cơ sở dữ liệu MySQL?

Một cách tốt hơn nhiều để xử lý điều này là ở phía cơ sở dữ liệu của bạn. Trong khi tạo bảng, hãy chỉ định giá trị mặc định cho TIMESTAMP cột dưới dạng

CREATE TABLE posts (
    id INTEGER AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(50) NOT NULL,
    creation_date TIMESTAMP DEFAULT NOW()
);

Ví dụ cho thấy một CREATE TABLE cho MySQL nhưng khái niệm là như nhau. Trong khi chèn hàng của bạn, chỉ cần không chỉ định bất kỳ giá trị nào cho cột creation_date và cơ sở dữ liệu sẽ tự động điền cho bạn.

Với cùng một bảng, nếu bạn muốn chèn ngày tháng từ Java, mã của bạn sẽ giống như

// Get current time
Timestamp now = new Timestamp(new Date().getTime());

try {
    // Prepare INSERT through Connection
    PreparedStatement stmt = conn.prepareStatement(
        "INSERT INTO posts (title, creation_date) VALUES (?, ?)");

    // Bind values
    stmt.setString(1, title);
    stmt.setTimestamp(2, now);

    // Insert
    stmt.executeUpdate();
} catch (SQLException e) {
    e.printStackTrace();
}

Lưu ý rằng bạn cũng cần mở một Connection DB (conn đối tượng trên) và đóng nó khi bạn hoàn thành. Nếu bạn chưa quen với API JDBC, hãy xem Kiến thức cơ bản về JDBC đầu tiên.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql tham gia và tổng là kết quả nhân đôi

  2. Làm thế nào để kích hoạt PDO trên AppServ trên Windows?

  3. Cách nhận dữ liệu bán hàng 3 tháng qua trong MySQL

  4. Mệnh đề Mysql LIKE và các từ riêng biệt trong một trường

  5. Làm thế nào để buộc tên bảng phân biệt chữ hoa chữ thường?