datetime对应的jdbc mysql_jdbc存取mysql的日期类型数据

mysql存储日期数据常用的格式为 date 和 datetime,(其他还有timestamp等,但是没用过)。

date与datetime的区别为:

date只保留日期,不保留时间值,如存的时候是 2019-5-7 12:12:12,取的时候就是 2019-5-7 00:00:00

datetime会保留日期时间值,但是末尾会多个0,如:2019-05-08 14:14:14.0

在mysql中的存储格式:

JDBC操作日期类型数据

date 对应 java.sql.Date,datetime 对应 java.sql.Timestamp

1、存储

存储有三种方式

//preparedStatement.setDate(1, new Date(DateUtil.strToLong("2019-5-4 12:12:12")));//preparedStatement.setTimestamp(1, new Timestamp(DateUtil.strToLong("2019-5-4 12:12:12")));

preparedStatement.setString(1, "2019/5/7 12:12:12");

这三种方式date和datetime类型都适用,对于date类型三种都只会存入日期值;对于datetime类型,第一种方式只会设置日期值。

第三种方式直接设置字符串,虽然数据库中默认适用 ‘-’ 分隔日期 ‘:’ 分隔时间,但是实际写什么分隔都行,2019$5*7 12@12:12  这么写都行。

2、取出

取出方式有:使用对应类型的api取出时间对象,为java.sql下的类,也可以使用String类型取出。

System.out.println("date类型:");

System.out.println(resultSet.getDate("date_1"));

System.out.println(resultSet.getTime("date_1"));

System.out.println(resultSet.getTimestamp("date_1"));

System.out.println(resultSet.getString("date_1"));

System.out.println("datetime类型:");

System.out.println(resultSet.getDate("datetime_1"));

System.out.println(resultSet.getTime("datetime_1"));

System.out.println(resultSet.getTimestamp("datetime_1"));

System.out.println(resultSet.getString("datetime_1"));

public classTestDate {private static final String sql1 = "insert into t_date values(null, ?, ?, ?) ";private static final String sql2 = "select * from t_date where id=?";public static voidmain(String[] args) {

insert();//select();

}public static voidselect(){try{

Connection connection=DBUtil.getConnection();

PreparedStatement preparedStatement=connection.prepareStatement(sql2);

preparedStatement.setInt(1, 5);

ResultSet resultSet=preparedStatement.executeQuery();while(resultSet.next()){

System.out.println(resultSet.getInt(1));

System.out.println("==========-=-=--=-=-=-=-----");

System.out.println("date类型:");

System.out.println(resultSet.getDate("date_1"));

System.out.println(resultSet.getTime("date_1"));

System.out.println(resultSet.getTimestamp("date_1"));

System.out.println(resultSet.getString("date_1"));

System.out.println("datetime类型:");

System.out.println(resultSet.getDate("datetime_1"));

System.out.println(resultSet.getTime("datetime_1"));

System.out.println(resultSet.getTimestamp("datetime_1"));

System.out.println(resultSet.getString("datetime_1"));

System.out.println("==========-=-=--=-=-=-=-----");

System.out.println(resultSet.getBigDecimal("big_decimal"));

System.out.println("==========-=-=--=-=-=-=-----");

}

connection.close();

}catch(SQLException e) {

e.printStackTrace();

}

}public static voidinsert(){try{

Connection connection=DBUtil.getConnection();

System.out.println(connection);

PreparedStatement preparedStatement=connection.prepareStatement(sql1);//数据库字段为date类型,//preparedStatement.setDate(1, new Date(DateUtil.strToLong("2019-5-4 12:12:12")));//preparedStatement.setTimestamp(1, new Timestamp(DateUtil.strToLong("2019-5-4 12:12:12")));

preparedStatement.setString(1, "2019-5-4 12:12:12");//数据库字段为datetime类型//preparedStatement.setDate(2, new Date(new java.util.Date().getTime()));//Date对象设置会不保存时间值//preparedStatement.setTimestamp(2, new Timestamp(new Date().getTime()));

preparedStatement.setString(2, "2019-5-8 12:12:12");//数据库字段类型为bigdecimal

preparedStatement.setDouble(3, 23.4);int i =preparedStatement.executeUpdate();

System.out.println(i);

connection.close();

}catch(SQLException e) {

e.printStackTrace();

}

}

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值