簡體   English   中英

如何在SQL Server 2008 R2表中插入字符串類型timestampto

[英]How to insert string type timestampto in to sql server 2008 r2 table

我正在嘗試將Excel文件中的記錄插入數據庫表中。 excel文件包含的時間戳為“ IST 05/5/13 03:47 PM”。 我想在db中將時間戳記保存為datetime,以便以后我可以對datetime約束進行查詢。 在Java中,我正在使用准備好的語句。 我在表中使用datetime2(7)數據類型。

timeStampt的值= 13/05/10 03:47 PM IST

private void insertToDb(String vh, String timeStamp, String location, double tempReal, double tempFixed) throws ParseException{
        conn = DbHandler.getConnection();
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yy hh:mm a");
        java.util.Date utilDate = sdf.parse(timeStamp);

        java.sql.Date sqlDate =  new java.sql.Date(utilDate.getTime());

        String query = "INSERT INTO [DATALOGGER_TEMP_REPORT](vehicle_no,time_stamp,location,temp_real,temp_fixed)values(?,?,?,?,?)";
        try {
            pstmt= conn.prepareStatement(query);
            pstmt.setString(1,vh);
            pstmt.setDate(2, sqlDate);//(2, date);
            pstmt.setString(3, location );
            pstmt.setDouble(4, tempReal);
            pstmt.setDouble(5, tempFixed);
            pstmt.executeUpdate(); // execute insert statement
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }

當前,在數據庫表中的時間戳值存儲為= 2013-10-05 00:00:00.0000000

相反,我希望我的表格將時間戳存儲為IST 05/10/13 03:47 PM

這里的問題取決於您要存儲在sql server db中的列的類型。

參見http://msdn.microsoft.com/en-us/library/ms186724.aspx

如果僅使用SQL Date類型,則此精度只有一天。

我假設java.util.Date utilDate正確保存了datetime。

使用java.sql.Timestamp類型而不是java.sql.Date嘗試。 這應該是適當的。 它的工作方式與java.sql.Date相同。

您的代碼將包含:

....
java.sql.Timestamp sqlTS = new.java.sql.Timestamp(utilDate.getTime());

...

pstmt.setTimestamp(2, sqlTS);
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM