zoukankan      html  css  js  c++  java
  • Java日期时间API系列2-----Jdk7及以前的日期时间类在mysql数据库中的应用

    1.java中与数据库相关的时间类

    java提供与mysql方便交互的三种数据类型:

    java.sql.Date

    java.sql.Time

    java.sql.Timestamp

    它们都是继承java.util.Date,算是对该类的精简,很适合跟数据库交互。

    2.MySQL 中的日期和时间类型

    日期和时间类型 字节 最小值 最大值
    DATE 4 1000-01-01 9999-12-31
    DATETIME 8 1000-01-01 00:00:00 9999-12-31 23:59:59
    TIMESTAMP 4 19700101080001 2038 年的某个时刻
    TIME 3 -838:59:59 838:59:59
    YEAR 1 1901 2155

    3.java中类与mysql中类型的匹配

    java类型 mysql类型
    timestamp  datetime
    timestamp  timestamp
    timestamp  date 保留日期部分
    timestamp  time 保留时间部分
    date date
    time time

    4.mysql中datetime与timestamp的区别

    a)DATETIME的默认值为null,5.6版本之后,也能用CURRENT_TIMESTAMP;TIMESTAMP的字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该列的更新值,则默认更新为当前时间。

    b)DATETIME使用8字节的存储空间,TIMESTAMP的存储空间为4字节。因此,TIMESTAMP比DATETIME的空间利用率更高。

    c)两者的存储方式不一样 ,对于TIMESTAMP,它把客户端插入的时间从当前时区转化为UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入和输出。

    d)两者所能存储的时间范围不一样:

    timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’;

    datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。

    所以,如果要适用广泛的,建议适用DATETIME。


    参考:https://www.jianshu.com/p/937656cb269b

          https://blog.csdn.net/z3278221/article/details/81000876

  • 相关阅读:
    基于脚本的nodemanager管理器
    SSH 等效性问题 总提示输入密码问题
    增量检查点【概念】
    【ORA错误大全】 ORA-19527
    DataGuard 配置须知
    rhel5.4+oracle 10g rac
    microg,google新推的一个计划
    [转]Android ListView 与 RecyclerView 对比浅析—缓存机制
    android studio的Beta, Canary, Dev, Stable四种Channel版本介绍、分析与选择
    android studio增量更新
  • 原文地址:https://www.cnblogs.com/xkzhangsanx/p/12037616.html
Copyright © 2011-2022 走看看