如何在插入语句中插入带有区域时间的TimeStamp

时间:2011-03-22 08:13:31

标签: java jdbc timezone

如何在插入语句中插入带有区域时间的TimeStamp ...  我把它作为字符串2011-03-22T13:33:54+0530 使用以下将其转换为时间并插入

String timStp = 2011-03-22T13:33:54+0530
java.sql.Timestamp tsmp = new java.sql.Timestamp(sdf.parse(timStp).getTime()); 
java.sql.Timestamp tsmp11 = new java.sql.Timestamp(sdf.parse(timStp).getTimezoneOffset());

INSERT INTO PUNCHOUT_USER_LOGIN(REQ_TIME) VALUES(TIMESTAMP '"+tsmp+"');

已插入以上查询: - > 22-MAR-11 01.12.44.000000000 PM(没有时区)

1 个答案:

答案 0 :(得分:1)

请勿将Timestamp转换为String。将其插入Timestamp。您可以使用PreparedStatement#setTimestamp()

String sql = "INSERT INTO PUNCHOUT_USER_LOGIN(REQ_TIME) VALUES(?)";
// ...

try {
    // ...
    preparedStatement = connection.prepareStatement(sql);
    preparedStatement.setTimestamp(1, timestamp);
    // ...
} finally {
    // ...
}

另见: