sql >> Databasteknik >  >> RDS >> Mysql

Hur får man en tidsstämpel i Java och lagrar i MySQL-databas?

Ett mycket bättre sätt att hantera detta är på din databassida. När du skapar tabellen, ange standardvärdet för TIMESTAMP kolumn som

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

Exemplet visar en CREATE TABLE för MySQL men konceptet är detsamma. När du infogar din rad ska du bara inte ange något värde för kolumnen creation_date och databasen fyller i den automatiskt åt dig.

Med samma tabell, om du vill infoga datumet från Java, bör din kod se ut som

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

Observera att du också skulle behöva öppna en DB Connection (conn objekt ovan) och stäng den när du är klar med den. Om du är ny på JDBC API, ta en titt på JDBC Basics först.




  1. SQL-fråga för att hämta data för de senaste 3 månaderna

  2. Topp 5 PostgreSQL-frågeövervakningsverktyg

  3. Att lägga till en kolumn som en främmande nyckel ger ERROR kolumn som refereras i främmande nyckel begränsning existerar inte

  4. Upptäck framtida dubbletter av värden medan du itererar genom MySQL-resultat i PHP