2015-08-13 102 views
2

我試圖以毫秒級的精度在MySQL數據庫中存儲一些時間信息。我想要存儲的格式是2015-08-13 10:56:24.570Java Spring - MySQL時間戳字段和毫秒精度

問題是,我必須創建具有長度屬性的表列(3或6,取決於小數部分)。我用Java Spring Framework編寫的應用程序會自動創建mysql表,如果它以前沒有創建的話。但是我無法設置日期字段的長度屬性。

@Column註釋具有長度參數,但只有字符串字段纔有意義。」 Spring Jpa的文件說。

另一個有趣的部分是我不能使用@Temporal註釋。我的IDE給出了一個錯誤,「註釋@Temporal不允許用於這個位置」。我想知道爲什麼我也給這個錯誤。

任何幫助對我都很好。

編輯:創建MySQL表

@Entity 
@Table(name = "dbTable") 
public class Report 
{ 
    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO) 
    private Long id; 


    @Temporal(TemporalType.TIMESTAMP) 
    @Column(name = "myDate", nullable = false, length = 6) 
    private java.util.Date date; 

    // Getters Setters etc. 

} 
+0

您正在使用的那一列的類型是什麼? –

+0

併發布實體... –

+1

我嘗試過「DATE,DATETIME,TIMESTAMP」。只要我不添加長度屬性,它不會保存小數部分(毫秒)。 @AmitBhati – msaiducar

回答

1

我的Java代碼做類型的列

的java.sql.Timestamp

同時存儲在MySQL中的相關信息的時間。

簡單的例子: -

public static void main(String[] args){ 
    System.out.println(java.sql.Timestamp.valueOf("2013-10-10 10:49:29.12000")); 
} 

Output:- 2013-10-10 10:49:29.12 

Read this,如果有幫助。

將列類型從java.util.Timestamp更改爲java.sql.Timestamp。

+0

是的,你絕對是對的,我可以創建我的時間信息。但是當我嘗試將它存儲在MySQL數據庫中時,保存「2013-10-10 10:49:29」。 – msaiducar

+0

粘貼你的問題中插入到MySQL數據庫中的實體類。 –

+0

我認爲你需要改變數據庫列的數據類型。 –