Java 向数据库中输入 datetime类型数据

Java 向数据库中输入datetime类型数据

java可以使用jdbc访问数据库,但对时间这个问题很无奈。我们通常使用的时间是java.utils.Date。后来尝试使用java.sql.Date朝数据库中写入时间,发现了一个问题,这些写入的时间,无一例外的没有后面的小时等信息,如下图所示。
没有红色框框信息

经过搜索,理解了相关的问题。
java.sql.Date只表示数据库中日期的部分,如果想向数据库中写入完整的时间,如2016-12-11 17:10:25.000 则需要使用java.sql.Timestamp这个类。

下面,我给大家介绍下两种东西的使用方法,也算是给自己记录了一份学习笔记。

字符串和java.utils.Date相互转换

我们使用DateFormat 类来进行String和Date的转换,而java.utils.Date是我们在java编程中经常使用的。

字符串转化为Date类型

DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");    // 这里填写的是想要进行转换的时间格式
String str = "2016-12-11 17:17:10";         // 时间字符串

java.utils.Date date = null;
try{
date = format.parse(str);
}catch(Exception e){
e.printStackTrace();
}

Date类型转化为字符串

DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss");    // 这里填写的是想要进行转换的时间格式
Date date = new java.utils.Date();      // 获取当前时间
String str = format.format(date);
// str = "2016-12-11 17:17:10"

java.sql.Date向数据库写入日期

这里就需要java.sql.Date和java.utils.Date进行相互转换了,这个转换一般比较容易,利用构造方法和.getTime() 方法进行转化。

java.utils.Date date = new java.utils.Date();   // 获取当前时间
java.sql.Date sql_date = new java.sql.Date(date.getTime()); //转换成java.sql.Date

接着使用PreparedStatement 向数据库中写入时间,即可。

ps.setDate(1, new java.sql.Date(date.getTime()));   // 设置项

java.sql.Timestamp向数据库中写入时间

需要注意的是,上边一种方法只能将日期写入到数据库中,为了能够将时间精确到s甚至是ms。我们需要使用java.sql.Timestamp 类型。
java.sql.Timestamp 类型的构造函数也可以使用Long进行初始化

Date date = new Date();  
Timestamp timeStamp = new Timestamp(date.getTime());  

故在生成java.utils.Date时,将时间精确到s,然后使用预编译语句执行SQL语句

Date date = new Date();  
Timestamp timeStamp = new Timestamp(date.getTime()); 
 sql= "insert into flowmeter2(total,std_flow,temp,press,time) values(?,?,?,?,?)";   
        try {  
            PreparedStatement ps = connection.prepareStatement(sql);  
            ps.setString(1, total);  
            ps.setString(2, std_flow);  
            ps.setString(3, temp);  
            ps.setString(4, press);  
            ps.setTimestamp(5, timeStamp);  
            ps.executeUpdate();  
            System.out.println("添加成功!");  
            connection.close();  

便可以将时间精确到ms级

  • 13
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
Java有两种常用的日期时间数据类型,分别是java.util.Date和java.sql.Date。 java.util.Date是Java表示日期和时间的类,它包含了年、月、日、时、分、秒等信息。要将java.util.Date类型转换为字符串,可以使用DateFormat类的format方法,指定想要的时间格式进行转换。例如,可以使用SimpleDateFormat类将Date类型转换为字符串,代码如下所示: ```java DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); Date date = new java.util.Date(); String str = format.format(date); ``` 这样就可以将Date类型转换为字符串。 要将字符串转换为java.util.Date类型,可以使用DateFormat类的parse方法,指定字符串的时间格式进行转换。例如,可以使用SimpleDateFormat类将字符串转换为Date类型,代码如下所示: ```java DateFormat format = new SimpleDateFormat("yyyy-MM-dd kk:mm:ss"); String str = "2016-12-11 17:17:10"; java.util.Date date = null; try { date = format.parse(str); } catch (Exception e) { e.printStackTrace(); } ``` 这样就可以将字符串转换为java.util.Date类型。 另外,如果需要将java.util.Date类型转换为java.sql.Date类型,可以使用java.sql.Date的构造方法,传入java.util.Date类型的参数进行转换。例如,代码如下所示: ```java java.util.Date date = new java.util.Date(); java.sql.Date sql_date = new java.sql.Date(date.getTime()); ``` 这样就可以将java.util.Date类型转换为java.sql.Date类型。 综上所述,Java有两种常用的日期时间数据类型,分别是java.util.Date和java.sql.Date,可以根据需要进行相互转换。 #### 引用[.reference_title] - *1* *2* *3* [Java数据库输入 datetime类型数据](https://blog.csdn.net/jintingbo/article/details/80844402)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值