美文网首页
java向mysql传递日期

java向mysql传递日期

作者: callme周小伦 | 来源:发表于2019-10-22 16:48 被阅读0次

查看该文对传递数据库有了一定的了解
Java 向数据库中输入 datetime类型数据
可以通过java.sql.Datejava.sql.Timestamp两个类向mysql写入日期,这两个类都是java.util.Date的子类

public class Timestamp extends java.util.Date
public class Date extends java.util.Date
  1. 首先使用java.sql.Timestamp
pstmt.setTimestamp(3,new Timestamp(new java.util.Date().getTime()));
//pstmt.setTimestamp(3,new Timestamp(System.currentTimeMillis()));

其构造函数分别有

public Timestamp(int year, int month, int date,
                     int hour, int minute, int second, int nano) {
        super(year, month, date, hour, minute, second);
        if (nano > 999999999 || nano < 0) {
            throw new IllegalArgumentException("nanos > 999999999 or < 0");
        }
        nanos = nano;
    }
public Timestamp(long time) {
        super((time/1000)*1000);
        nanos = (int)((time%1000) * 1000000);
        if (nanos < 0) {
            nanos = 1000000000 + nanos;
            super.setTime(((time/1000)-1)*1000);
        }
    }

第一种方法分别传递各个位置信息,主要看一下第二种构造方法,我们需要传递一个long类型的数据,因此当我们向mysql传递当前日期时,需要使用new java.util.Date().getTime()获取当前时间的long值,这里注意需要添加完整名称来区分java.util.Date()java.sql.Date()

  • 传递结果(mysql中类型为datetime):


    image.png
  1. 接下来看一下java.sql.Date,他继承了java.util.Date,其构造方法为
public Date(int year, int month, int day) {
        super(year, month, day);
    }

public Date(long date) {
        // If the millisecond date value contains time info, mask it out.
        super(date);

    }

第一种比较简单,第二种构造方法同样也是传递一个long值,其实质是调用了java.util.Date的构造方法

  • 结果如下(mysql中类型为datetime,时间部分0):


    image.png

相关文章

网友评论

      本文标题:java向mysql传递日期

      本文链接:https://www.haomeiwen.com/subject/nccqvctx.html