2014-07-12 56 views
0

我想将此:17:26:54转换为TimeStamp数据类型。我需要将其输入到数据库中。我该怎么做呢? 我有一个字符串变量的数据 我使用的是java。 我从另一个来源提取这些数据,我需要将它推入数据库,其中时间戳的列被定义为TimeStamp类型。我正在使用JDBC将数据从Java程序推送到MySQL。 所以我需要一个解决方案将字符串:17:26:54转换为timeStamp数据类型,以便它可以在不引发sql异常错误的情况下进入数据库。从字符串到TimeStamp数据类型的转换

编辑:我不需要timeStamp的日期部分,因为我没有在我的计算中的任何地方使用它,也没有从生成时间信息的源中提取它的选项。

+2

什么日期?为什么数据库? – Braj

+0

你知道关于JDBC的一切吗? –

+0

我不需要数据..我从另一个来源提取这些数据。我只需要将它推入MySQL数据库,在那里我已经定义列为“timestamp”数据类型。所以我只需要将它转换为可接受的格式,以便能够使用JDBC将成功推送到MySQL – mv93

回答

2

使用PreparedStatement#setTime()PreparedStatement#setTimestamp()来插入java.sql.Timejava.sql.Timestamp

至字符串转换为日期或时间戳使用SimpleDateFormat

示例代码:

String time="12/07/2014 17:26:54"; 

SimpleDateFormat format=new SimpleDateFormat("dd/MM/yyyy HH:mm:ss"); 
Date date=format.parse(time); 

如果你尝试下面的示例代码,那么默认的日期是1970年1月1日

String time="17:26:54"; 

SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss"); 
Date date=format.parse(time); 

如何将Java日期转换为SQL日期?

java.util.Date javaDate=new java.util.Date(); 
java.sql.Date sqlDate=new java.sql.Date(javaDate.getTime()); 

如何将其插入到数据库中的时间戳数据类型?

示例代码:

String time="17:26:54"; 

SimpleDateFormat format=new SimpleDateFormat("HH:mm:ss"); 
Date date=format.parse(time); 

... 

PreparedStatement stmt = conn 
     .prepareStatement("insert into test(message,time) values(?,?)"); 
stmt.setString(1, "This is message"); 
stmt.setTimestamp(2, new java.sql.Timestamp(date.getTime())); 
stmt.executeUpdate(); 

查找complete sample code

+1

哇。太棒了。非常感谢!! – mv93

+0

如果问题得到解决,请通过接受所需答案来关闭该线程。 [访问](http://stackoverflow.com/tour) – Braj

0

考虑用DateFormat类将字符串转换为java.util.Date实例。

java.sql.Timestamp可以用长日期表示法构造,可以通过getTime()方法从java.util.Date类实例中获得。

0

根据您的意见

不事关我,因为我不需要日期

使它成为一个柱子TIME类型。然后按照getting started with JDBC guide,

java.sql.Time SQL TIME信息。 java.util.Date基类的年,月和日字段设置为1970年1月和1日。这是Java时期的“零”日期。

Time构造,

long millis = (hour * 3600 * 1000) + (minutes * 60 * 1000) + (seconds * 1000); 
java.sql.Time time = new java.sql.Time(millis); 
+0

这是[不赞成使用的cosntrutor](http://docs.oracle.com/javase/7/docs/api/java/sql/Time.html#Time%28int ,%20int,%20int%29),你永远不会建议任何人使用它。 – Braj

+0

感谢这有助于:)我会在我的数据库中做到这一点。但为了从Java写入我的数据库,我需要一个兼容的值(我不能插入字符串类型到时间类型)所以我需要将17:26:54转换为时间数据类型..我该怎么做 – mv93

+0

使用setDate并传递一个Time对象,转换为几分钟和几秒钟,并使用上面的方法。 –

相关问题