Java 如何存取MySQL datetime类型

  

1 在java中只有Date类型,这样数据存储到MySQL会出现问题,前台提交的数据,比如2018-03-20 17:30:59,后台用Date接受的时候,由于Date只精确到天,所以默认接收时间为2016-10-10 00:00:00,保存到mysql数据库之后,重新取出数据的时候又会发现,数据为2018-03-20 00:00:00.0,无缘无故在后面多了一个.0。

2 解决方法

① 提取数据

如果要从MySQL中获取yyyy-MM-dd HH:mm:ss 日期格式,首先必须使用 rs.getTimestamp("insert_dt")方法,其中"insert_dt" 是数据库时间字段,类型为datetime;然后通过SimpleDateFormat 时间格式化类,将取出来的时间转为String类型

先来对比rs获取不同日期时间格式的方法

    System.out.println(rs.getDate("insert_dt"));
    System.out.println(rs.getTime("insert_dt"));
    System.out.println(rs.getTimestamp("insert_dt"));

  输出结果:

2018-03-19
22:03:21
2018-03-19 22:03:21.0

  可以看到通过getTimestamp获取的日期格式最后还有一位数(2018-03-19 22:03:21.0),需要将rs.getTimestamp("insert_dt") 转为String类型

 String timeStamp = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(rs.getTimestamp("insert_dt"));
 System.out.println(timeStamp);

  输出结果:

2018-03-19 21:51:57

  ② 存储数据

        Date date = new Date();
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //从前端或者自己模拟一个日期格式,转为String即可
        String dateStr = format.format(date);

        String sql="insert into t_pay_info(title,content,price,type_id,contact,phone,insert_dt)"
                    +"values(?, ?, ?, ?, ?, ?, ?);";
        String[] params = {"初中英语辅导","擅长初中英语辅导,能够与学生进行良好的沟通,稳步提升学生成绩","100", "3","Latinyrain","15185077780",dateStr};
        DBUtil.update(sql, params);

原文地址:https://www.cnblogs.com/Latiny/p/8613352.html

时间: 2025-01-02 02:53:21

Java 如何存取MySQL datetime类型的相关文章

Mybatis查询Mysql datetime类型时,相差8小时 解决方案

查出来的数据跟数据库里的数据相差了8个小时,这是为什么呢? 这是因为Mysql 使用系统默认时区,东八区. 而Tomcat java使用UTC时区进行处理业务逻辑. 时区的不同,从而导致Mysql数据库中datetime类型的值查询后转到Java Bean,值多了8个小时. 解决方法 在url后面添加 serverTimezone=Asia/Shanghai : jdbc.url=jdbc:mysql://127.0.0.1:3306/caipiao?useUnicode=true&charac

python datetime 写入mysql datetime类型

最近有个python项目需要更新mysql时间,类型是datetime,参考了网上的建议,将时间转为字符串再写入数据库. def toMysqlDateTime(): dt=datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")    return dt

MySql 字段类型对应 Java 实体类型

前言 MySQL Connector/J 对于 MySql 数据类型和 Java 数据类型之间的转换是很灵活的: 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String. 任何 MySql 数字类型都可以被转换为任何一种 Java 数字类型. (当然这样也可能出一些四舍五入,溢出,精度丢失之类的问题). Java基础类型与包装类型 a) 如果数据库字段是允许为空的,使用包装类. 如果不允许为空,使用包装的时候,如果你往数据库插入null值,此时就会抛出异常. 然

java JDBC与MySQL 关于日间与日期

//MySQL Date类型 -> java.sql.Date java.sql.Date d = new java.sql.Date(Calendar.getInstance().getTime().getTime()); //MySQL Time类型-> java.sql.Time Time t = new Time(d.getTime()); //MySQL DateTime类型 -> java.sql.Timestamp java.sql.Timestamp = new java

java中存储mysql数据库时间类型【date、time、datetime、timestamp】

在MySQL中对于时间的存储自己见表的时候都是设置的varchar类型的,感觉挺方便的. 昨天拿别人建好的表写代码,发现这张表中时间类型为datetime的,凭感觉试了一下不行,网上查了刚开始试了好几个都是不对的,一脸懵逼. -----------------------------------------------------------------------------------------------------------------------------------------

Android的Sqlite中DateTime类型数据的存取问题

关于讲sqlite中日期类型数据的存取网上有不少,但发现讲得这么细的非常少.更多的是用Date,不用做日期数据统计分析,对存取要求比较小的直接转换成long,即dateTime.getTime()存储.需要在界面上显示的时候就再将long型的日期数据转化为Date或DateTime类型.但是如果要做数据统计分析的话这样每条记录都要遍历转换会显得特别麻烦,数据量大的话时间消费是很大的. 我们知道Date类型数据在数据库中是yyyy-MM-dd形式存的,而Time是HH:mm形式存的.而DateTi

java mysql 日期类型

mysql(版本:5.1.50)的时间日期类型如下: datetime 8bytes xxxx-xx-xx xx:xx:xx 1000-01-01 00:00:00到9999-12-31 23:59:59 timestamp 4bytes xxxx-xx-xx xx:xx:xx 1970-01-01 00:00:01到2038 date 3bytes xxxx-xx-xx 1000-01-01到9999-12-31 year 1bytes xxxx 1901到2155 time 3bytes x

Java使用JDBC连接任意类型数据库(mysql oracle。。)

package cn.liz.test; import java.io.InputStream; import java.sql.Connection; import java.sql.Driver; import java.sql.SQLException; import java.util.Properties; import org.junit.Test; public class JBDCtest { /** * 编写一个通用的方法, 在不修改源程序的情况下, 可以获取任何数据库的连接

.NET 调用java webservice保存datetime类型数据为空的解决办法

问题描述:       用C#.NET调用Java开发的WebService时,先在客户端封装的带有int属性的对象,当将该对象传到服务器端时,服务器端可以得到 string类型的属性值,却不能得到int类型.double和DateTime类型的值(在服务端得到的均为null) 问题原因:        VS封装WebService引用时,如果WebService发布的是一个基本数据类型组成的对象,则会对该对象的非string属性同时生成 两个属性,一般是这样的"属性××"."