sql >> Database >  >> RDS >> Mysql

Hoe een tijdstempel in Java te verkrijgen en op te slaan in de MySQL-database?

Een veel betere manier om hiermee om te gaan, is aan uw databasezijde. Geef tijdens het maken van de tabel de standaardwaarde op voor de TIMESTAMP kolom als

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

Het voorbeeld toont een CREATE TABLE voor MySQL, maar het concept is hetzelfde. Geef tijdens het invoegen van uw rij geen waarde op voor de kolom creation_date en de database zal het automatisch voor u invullen.

Gezien dezelfde tabel, als u de datum van Java wilt invoegen, zou uw code er als volgt uit moeten zien

// 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();
}

Merk op dat u ook een DB Connection . moet openen (de conn object hierboven) en sluit het als u klaar bent. Als JDBC API nieuw voor u is, bekijk dan JDBC Basics eerst.




  1. Bijwerken met PDO-instructie

  2. Een vooraf ingevulde database bijwerken

  3. Ontvang de huidige bijgewerkte kolomnaam om in een trigger te gebruiken

  4. Hoe zich te ontdoen van de STRICT SQL-modus in MySQL