我想将此转换:17:26:54转换为TimeStamp数据类型。我需要将它输入数据库。我该怎么做呢? 我有一个字符串变量中的数据 我正在使用java。 我从另一个源提取此数据,我需要将其推送到数据库,其中时间戳列定义为TimeStamp类型。我使用JDBC将数据从java程序推送到MySQL。 所以我需要一个解决方案将字符串:17:26:54转换为timeStamp数据类型,以便可以将其输入数据库而不会抛出sql异常错误。
编辑:我不需要timeStamp的日期部分,因为我不在计算中的任何地方使用它,也没有选择从生成时间信息的源中提取它。
答案 0 :(得分:2)
使用PreparedStatement#setTime()或PreparedStatement#setTimestamp()插入java.sql.Time
或java.sql.Timestamp
。
将String转换为Date或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();
答案 1 :(得分:0)
考虑DateFormat类将字符串转换为java.util.Date
实例。
java.sql.Timestamp可以使用长日期表示构建,可以通过java.util.Date
方法从getTime()
类实例获取。
答案 2 :(得分:0)
根据你的意见
对我来说无关紧要,因为我不需要约会
将其设为TIME
类型的列。然后根据getting started with JDBC guide,
用于SQL TIME信息的java.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);