我想將當前日期和時間插入定義爲日期時間類型的列中。如何使用java將當前日期插入到mysql db
我輸入以下代碼:
java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);
當我檢查數據庫,我發現日期正確插入,但時間是:00:00:00。什麼是修復?
我想將當前日期和時間插入定義爲日期時間類型的列中。如何使用java將當前日期插入到mysql db
我輸入以下代碼:
java.sql.Date sqlDate = new java.sql.Date(new java.util.Date().getTime());
PrepStmt.setDate(1, sqlDate);
當我檢查數據庫,我發現日期正確插入,但時間是:00:00:00。什麼是修復?
由於您使用datetime
作爲字段類型,你需要使用java.sql.Timestamp
來存儲您的日期,並PrepareStatement.setTimestamp
插入它。
嘗試使用這樣的: -
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
您正在使用錯誤的方法。您可以改用PreparedStatement#setTimestamp(int parameterIndex, Timestamp x)
。
+1 - 我認爲你是禁食來檢測問題:) – Sujay
您需要使用的是setTimestamp(int parameterIndex,Timestamp x)方法,而不是setDate()方法。
,您所設置的時間戳將是如下的方式:
Timestamp timestamp = new Timestamp(new Date().getTime());
然後,您可以設置參數爲:
PrepStmt.setTimestamp(1, timestamp);
聽起來像是你需要
java.sql.Timestamp
您使用java.sql.Date
僅用於處理日期而不記錄時間的那個。或者,如果您只需要時間,則可以使用java.sql.Time
。
試着用的setTimestamp爲
PrepStmt.setTimestamp(1, sqlDate);
java.sql.Timestamp date = new java.sql.Timestamp(new java.util.Date().getTime());
PrepStmt.setTimestamp(1, date);
我解決了它使用這個..
什麼是你的MySQL數據庫中的列的數據類型? – doublesharp
@doublesharp。他寫在那裏。它的日期。 –