mysql(版本:5.1.50)中表示时间的类型及java中的对应类型
mysql类型 | 说明 | 对应的java类型 |
---|---|---|
date | “yyyy-MM-dd” 日期类型 (范围:”1000-01-01”~”9999-12-31”) | java.sql.Date |
time | “hh:mm:ss” 时间类型 (范围:”-838:59:59”~”838:59:59”) | java.sql.Time |
year | “yyyy” 年份值类型 (范围:1901~2155) | java.sql.Date |
timestamp | “yyyyMMddhhmmss” 时间戳类型 (范围:”19700101000000”~2037年的某个时刻) | java.sql.Timestamp |
datetime | “yyyy-MM-dd hh:mm:ss” 日期时间类型 (范围:”1000-01-01 00:00:00”~”9999-12-31 23:59:59”) | java.sql.Timestamp |
插入精确时间字段
1.设置数据库中的日期类型为datetime
2.创建对应的pojo 并且时间的类型设为java.util.Date
import java.util.Date;
public class TimePOJO {
private Integer id;
private Date f_createTime;
//getter setter
}
3.使用jdbc连接数据库 使用javaAPI进行插入操作 注意插入TimeStamp类型
public static void add(TimePOJO pojo){
String sql="INSERT INTO T_datetime_test( F_CreateTime ) VALUES ( ? );";
Dbutils.executeUpdate(sql,new Timestamp(pojo.getF_createTime().getTime()));
}
4.插入完成,数据库中显示
获取精确时间字段
0.保证数据库中的列是dateTime类型
1.获取列的时候调用rs.getTimeStamp()(用rs.getDate()只能获取到 天 不能获取到 秒)
public static void list(){
List<TimePOJO> list=new ArrayList<>();
String sql="select * from T_datetime_test";
ResultSet resultSet = null;
try{
resultSet = DbUtils.executeQuery(sql);
while(resultSet.next()){
TimePOJO pojo=new TimePOJO();
Long id = resultSet.getLong("id");
Timestamp f_createTime = resultSet.getTimestamp("F_CreateTime");
pojo.setId(id);
pojo.setF_createTime(new Date(f_createTime.getTime()));
list.add(pojo);
}
list.forEach(i->{
System.out.println(i.toString()+"格式化之后的:"+sdf.format(i.getF_createTime()));
});
}catch (Exception ex){
throw new RuntimeException(ex);
}finally {
DbUtils.closeAllQueitly(resultSet );
}
}
2.控制台输出结果
3.jsp页面显示时间:
1.先引入:
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
2.使用标签
<fmt:formatDate value="${pojo.f_createTime}" pattern="yyyy-MM-dd HH:mm:ss"/>