[hibernate]基本值类型映射之日期类型

hibernate基本值类型映射中日期类型支持date,time,timestamp这三个选项,其中

date:对应数据库中的date类型,表示只显示日期

time:对应数据库中的time类型,表示只显示时间

timestamp:对应数据库中的timestamp类型,如果数据库支持datetime类型则对应的是datetime类型,表示日期时间都显示(此处为经过本人测试后的猜测)。

以下摘自:开源中国

MySQL 中用来存储完整时间的字段包括有 TIMESTAMP 和 DATETIME 两个。很多人在选择时间字段的时候就有点晕,到底我该选择哪一个,它们俩有什么区别吗?

日期范围

TIMESTAMP 支持从’1970-01-01 00:00:01′ 到 ’2038-01-19 03:14:07′ UTC. 这个时间可能对目前正在工作的人来说没什么问题,可以坚持到我们退休,但对一些年轻的读者,就会有 Bug2K+38 的问题。

DATETIME 从 ’1000-01-01 00:00:00′ 直到’9999-12-31 23:59:59′.

考虑到二者在范围上的不同,你当前的事件日志使用 TIMESTAMP 是没有任何问题的,不过如果是为了记录你祖父和孙子的生日,那还是要用 DATETIME.

另外我建议,如果是一些跟现在相关的时间,可以选择 TIMESTAMP. 例如记录的添加时间之类的,其他的话还是要选择  DATETIME.

存储方面的比较

TIMESTAMP 需要 4 字节的存储空间,而 DATETIME 则需要 8 字节

时间: 2024-10-05 02:06:16

[hibernate]基本值类型映射之日期类型的相关文章

Java读取文件,将字符串转化成日期类型,将日期类型进行加减

最近总用Java读取文件,发现了一种我个人觉得比较好的方法,现在分享给大家 public static void main(String[] args) throws Exception { FileInputStream f = new FileInputStream("文件路径"); InputStreamReader fileInputStream = new InputStreamReader(f); BufferedReader br = new BufferedReader

java中String类型与Date日期类型的互相转换

1 //String格式的数据转化成Date格式,Date格式转化成String格式 2 SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3 try { 4 Date date = formatter.parse("1969-01-01 00:00:00");//Date格式 5 System.out.println(date); 6 String datestr= f

MongoDB 日期类型查询

一.前言 MongoDB 里面的日期类型是没有时区概念的,默认存储的是 ISODate("2018-04-02T13:19:16.418Z") 这种格式的零时区时间,比北京时间晚了八个小时. 工作中遇到了一个问题,怎么查询比当前时间小30秒之内的文档记录呢? 时区问题有关系吗?日期类型要怎么比较?怎么表示当前时间呢?日期要怎么实现加减呢? 二.方案 1.时区问题 其实时区问题并不是一个太需要关注的问题,因为MongoDB 提供了一个Javascript shell 窗口,支持 js 的

Hibernate @Temporal 注解处理Java与Mysql时间日期类型的映射关系

2017-4-2 在 Java 中使用 java.util.Date 和 java.util.Calendar 表示时间.日期类型.在 Mysql 中使用 YEAR.DATE.TIME.TIMESTAMP.DATETIME 五种数据类型表示时间日期,由此引出了 Java 日期类型跟数据库的日期类型怎么映射的问题.本文总结了使用 Hibernate @Temporal 注解的解决方案. 使用 @Temporal 注解修饰 Java 实体类的数据类型 指定 @Temporal value 属性,其中

hibernate Java 时间和日期类型的 Hibernate 映射

基础知识: 在 Java 中, 代表时间和日期的类型包含: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中还提供了 3 个扩展了 java.util.Date 类的子类: java.sql.Date, java.sql.Time 和 java.sql.Timestamp, 这三个类分别和标准 SQL 类型中的 DATE, TIME 和 TIMESTAMP 类型相应 在标准 SQL 中, DATE 类型表示日期, TIME 类型表示时间,

Hibernate 基本类型映射

Hibernate映射类型 Java类型 标准SQL类型 大小和取值范围 integer 或者 int int 或者 Integer INTEGER 4字节,-2^31 ~ 2^31-1 long long 或者 Long BIGINT 8字节,-2^63 ~ 2^63-1 short short 或者 Short SMALLINT 2字节,-2^15 ~ 2^15-1 byte byte 或者 Byte TINYINT 1字节,-128 ~ 127 float float 或者 Float F

【Hibernate学习笔记-5.2】使用@Temporal修饰日期类型的属性

作者:ssslinppp       1. 摘要 关于日期类型,Java和数据库表示的方法不同: Java:只有java.util.Date和java.util.Calender两种: 数据库:date.time.datetime.timestamp等: 当在持久化类定义了一个java.util.Date类型的属性时,Hibernate到底将该类型的属性定义成date类型.time类型还是timestamp类型? 使用@Temporal注解: @Temporal: @Temporal(Tempo

Hibernate 映射枚举(Enum) 类型的属性

在数据库中我们一般用整数或字符串来表示枚举值(有些数据库(如 MySQL)本身带有枚举类型), 而在使用 Hibernate 时实体对象中也用 Integer 或 String 来表示枚举就不那么友好了.试想来我们这样定义实体对象的两个属性 @Entitypublic class User {  .... public Integer type;  //0: Individual 类型,1: Company 类型  public String gender;  //可取值 Male 和 Fema

hibernate课程 初探单表映射3-3 对象类型

本节简介: 1 简介对象类型(重点是音视频blob类型) 2 demo(对图片的写入数据库与读取) 1 简介对象类型 映射类型 java类型 标准sql类型 mysql类型 oracle类型 binary byte[] varchar blob blob text(大文本类型) java.lang.String clob text   clob clob(大文本类型)    java.sql.Clob clob text clob blob(二进制数据类型)  java.sql.Blob blo