2015-11-12 67 views
0

我花了最後一個小時嘗試通過時間戳將插入日期和時間的替代版本插入到使用java的sql數據庫中。com.mysql.jdbc.MysqlDataTruncation:數據截斷:不正確的日期時間值:''

Date endDate = new Date();  
ptmt.setTimestamp(5, new java.sql.Timestamp(endDate.getTime())); 

我創建表的語句是

CREATE TABLE Location (
    UserID varchar(50), 
    Latitude DOUBLE, 
    Longitude DOUBLE, 
    Altitude DOUBLE, 
    TimeInserted timestamp 
); 

是否有輸入日期的替代方法。

在我準備好的聲明中,我嘗試在字符串中使用now(),但它查找參數。

String queryString = "INSERT INTO Location(UserID,Latitude,Longitude,Altitude,TimeInserted) VALUES(?,?,?,?,now());"; 

但是,當搜索第5個參數時它並不快樂。

任何想法?

我試着讓桌子日期,並設法插入日期 - 但我需要時間來訂購。

感謝

+0

爲什麼使用'timestamp'?使用'datetime'。 –

+0

我剛剛嘗試了所有五(5)參數的代碼,它對我來說工作得很好。您的代碼中一定還有其他事情沒有顯示給我們。 –

回答

1

不過,對於第5個參數進行搜索時它並不快樂。

String queryString = "INSERT INTO Location(UserID,Latitude,Longitude,Altitude,TimeInserted) VALUES(?,?,?,?,now());"; 

您的查詢字符串有4個約束參數,但這一說法ptmt.setTimestamp(5, new java.sql.Timestamp(endDate.getTime()));試圖綁定long到不存在

+0

我的查詢字符串實際上是'字符串查詢字符串=「INSERT INTO LocationTrace(用戶ID,緯度,經度,海拔高度,TimeInserted)VALUES(?,?,?,?,?);」;我剛纔說明了我現在如何使用()中的字符串,就像你會在SQL中。 – bananabreadbob

0

東西第五個參數記住

public Timestamp(int year, int month, int date, int hour, int minute, int second, int nano) 

已棄用。而不是使用構造方法Timestamp(long millis)來

Date endDate= new Date(); 
java.sql.Timestamp eDate = new java.sql.Timestamp(enddate.getTime()); 
long endDatetime= eDate.getTime(); 

ptmt.setTimestamp(5, endDatetime); 

試試這個。

相關問題