Java中和Mysql中常用日期时间类型的使用

1.类型说明

Mysql中:
date         仅存储日期,表示范围'1000-01-01'到'9999-12-31'。
datetime     存储日期和时间,表示范围‘1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’,查询的内容不做任何改变,原样输入和输出。
timestamp    存储日期和时间,表示范围‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’,把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储,查询时,将其又转化为客户端当前时区进行返回。
Java中:
java.util.Date      获取当前系统时间,或者指定一个时间。——指定某个时间时,构造函数参数为时间戳。
java.sql.Data       操作数据库时,针对sql语句使用,包含日期、不包含时间。——构造函数参数为时间戳。
java.sql.Timestamp  操作数据库时,针对sql语句使用,既包含日期和时间。——构造函数参数为时间戳。

2.Java.util.Date类的使用

java.util.Date date1 = new java.util.Date();//获取当前系统日期和时间,显示内容如:Wed Dec 09 08:32:34 CST 2020
long tem = date1.getTime(); //返回自从GMT 1970-01-01 00:00:00到此date对象上时间的毫秒数,即毫秒时间戳。
java.util.Date date2 = new java.util.Date(date1.getTime()); //指定日期时间,构造函数的参数为毫秒时间戳。

3.java.sql.Data类、java.sql.Timestamp类的使用

这两个类是在对数据库操作时,用于填充sql语句。

Connection con=null;
PreparedStatement ps=null;
ResultSet rs=null;

(1)存入:setXXX
con = Database.conn(); //连接数据库
String sql="insert into table1 values(?, ?, ?, ?)"; //如数据库字段为:id(int), dt1(date), dt2(datetime), dt3(timestamp)
ps = con.prepareStatement(sql);
ps.setInt(1,1);     //sql语句中第1个字段位置
java.sql.Date jsd = new java.sql.Date(date1.getTime()); //将date1的毫秒时间戳转化为java.sql.Date对象后,set进数据库中date类型的字段
ps.setDate(2, jsd); //sql语句中第2个字段位置
java.sql.Timestamp timestamp = new java.sql.Timestamp(date1.getTime()); //将date1的毫秒时间戳转化为java.sql.Timestamp对象后,set进数据库中datetime类型和timestamp类型的字段
ps.setTimestamp(3, timestamp); //sql语句中第3个字段位置
ps.setTimestamp(4, timestamp); //sql语句中第4个字段位置

(2)取出:getXXX
con = Database.conn();
String sql="select * from table1";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()){
                System.out.println("1.id: " + rs.getInt("id"));
                System.out.println("2.dt1:" + rs.getDate("dt1"));
                System.out.println("3.dt2:" + rs.getTimestamp("dt2"));
                System.out.println("4.dt3:" + rs.getTimestamp("dt3"));
            }

 

参考:
1. https://blog.csdn.net/qq_35152037/article/details/90171595
2. https://www.it610.com/article/1281791928144248832.htm
3. https://www.cnblogs.com/huangcan1688/p/12302608.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

禺垣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值