Как вставить текущую дату и время в базу данных с помощью SQL?

Я использовал следующий код, но поле DateTime в SQL представлено как:

2005-04-08 00:00:00

Я тоже хочу иметь время. что я должен изменить?

Вот мой код ниже:

// Get the system date and time.
java.util.Date utilDate = new Date();
// Convert it to java.sql.Date
java.sql.Date date = new java.sql.Date(utilDate.getTime());
...
...
...
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setDate(1, date);

Ответ 1

Попробуйте использовать setTimestamp вместо setDate, поскольку временная метка является предпочтительным форматом данных и времени.

Ответ 2

вы можете установить Timestamp import java.sql.Timestamp;

stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));

вместо

stmt.setDate(1, date);

o/p будет: 2014-05-16 08: 34: 52.977

установите ваш DB -column как временную метку.

Ответ 3

Попробуйте следующее:

Connection con;
Statement stmt;
con = DriverManager.getConnection(url, username, password);
stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO MYTABLE(time) " +
"VALUES ('" + new java.sql.Date(System.CurrentTimeMillis())"');");

Ответ 4

Используйте функцию sql now().

INSERT INTO table date_field VALUES(NOW());

Ответ 5

Я бы не стал искать текущее время в Java, просто дайте базе данных выполнить задание:

String sql = "insert into some_table (some_column, timestamp_column) values (?, current_timestamp)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, 42);
stmt.executeUpdate();

Ответ 6

Попробуйте использовать setDate (utilDate) вместо того, чтобы пытаться установить дату SQL. В SQL даты и время представляют собой разные типы данных.

Ответ 7

Я сделал следующее:

con = new BDConesion(); //Conexion with de DB
Connection cn = con.conexion()
PreparedStatement st = null;
st = cn.prepareStatement("INSERT INTO TABLE (Id,Fecha,contendido) VALUES(?,?,?)");
st.setString(1,String.valueOf(key)); //convert the int to string
st.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
st.setString(3,Cont);//Cont it is a varible string
st.executeUpdate();

Надеюсь, вы будете служить

Ответ 8

Фактически, дата в базе данных представляет собой строку типа "yyyy-mm-dd".

Почему бы не попробовать:

String date = "2010-07-28";

stmt.executeUpdate("INSERT INTO MYTABLE(time) " + s);

Это только для даты, которую вы хотите.

Если вы хотите вставить сейчас, используйте команду:

INSERT INTO mytable (now());